سازه های

ساختارهای زیر در سطح جهانی در دسترس هستند.

  • الحاق دو دنباله با یک نوع عنصر.

    اعلامیه

    public struct Concatenation<Base1: Sequence, Base2: Sequence>: Sequence
    where Base1.Element == Base2.Element
    extension Concatenation: Collection where Base1: Collection, Base2: Collection
    extension Concatenation: BidirectionalCollection
    where Base1: BidirectionalCollection, Base2: BidirectionalCollection
    extension Concatenation: RandomAccessCollection
    where Base1: RandomAccessCollection, Base2: RandomAccessCollection
  • نمای چرخشی روی مجموعه

    اعلامیه

    public struct RotatedCollection<Base> : Collection where Base : Collection
    extension RotatedCollection: BidirectionalCollection
    where Base: BidirectionalCollection
    extension RotatedCollection: RandomAccessCollection
    where Base: RandomAccessCollection
  • اعلامیه

    public struct AnyDifferentiable : Differentiable
  • یک مقدار مشتق پاک شده با نوع.

    نوع AnyDerivative عملیات خود را به یک مقدار مشتق پایه دلخواه و مطابق با Differentiable و AdditiveArithmetic ارسال می‌کند و ویژگی‌های مقدار اساسی را پنهان می‌کند.

    اعلامیه

    @frozen
    public struct AnyDerivative : Differentiable & AdditiveArithmetic
  • آرایه ای چند بعدی از عناصر که تعمیم بردارها و ماتریس ها به ابعاد بالقوه بالاتر است.

    پارامتر عمومی Scalar نوع اسکالرهای موجود در تانسور (مانند Int32 ، Float و غیره) را توصیف می کند.

    اعلامیه

    @frozen
    public struct Tensor<Scalar> where Scalar : TensorFlowScalar
    extension Tensor: Collatable
    extension Tensor: CopyableToDevice
    extension Tensor: AnyTensor
    extension Tensor: ExpressibleByArrayLiteral
    extension Tensor: CustomStringConvertible
    extension Tensor: CustomPlaygroundDisplayConvertible
    extension Tensor: CustomReflectable
    extension Tensor: TensorProtocol
    extension Tensor: TensorGroup
    extension Tensor: ElementaryFunctions where Scalar: TensorFlowFloatingPoint
    extension Tensor: VectorProtocol where Scalar: TensorFlowFloatingPoint
    extension Tensor: Mergeable where Scalar: TensorFlowFloatingPoint
    extension Tensor: Equatable where Scalar: Equatable
    extension Tensor: Codable where Scalar: Codable
    extension Tensor: AdditiveArithmetic where Scalar: Numeric
    extension Tensor: PointwiseMultiplicative where Scalar: Numeric
    extension Tensor: Differentiable & EuclideanDifferentiable where Scalar: TensorFlowFloatingPoint
    extension Tensor: DifferentiableTensorProtocol
    where Scalar: TensorFlowFloatingPoint
  • یک تابع pullback که انتقال دو Tensors را انجام می دهد.

    اعلامیه

    public struct BroadcastingPullback
  • زمینه ای که اطلاعات زمینه محلی رشته ای را که توسط API های یادگیری عمیق مانند لایه ها استفاده می شود، ذخیره می کند.

    از Context.local برای بازیابی بافت محلی رشته فعلی استفاده کنید.

    مثال ها:

    • مرحله یادگیری فعلی را روی آموزش تنظیم کنید تا لایه‌هایی مانند BatchNorm میانگین و واریانس را هنگام اعمال بر ورودی‌ها محاسبه کنند.
      Context.local.learningPhase = .training
    
    • مرحله یادگیری فعلی را روی استنتاج تنظیم کنید تا لایه‌هایی مانند Dropout وقتی روی ورودی‌ها اعمال می‌شوند واحدها را حذف نکنند.
      Context.local.learningPhase = .inference
    

    اعلامیه

    public struct Context
  • یک لایه پیچیدگی 1 بعدی (به عنوان مثال پیچیدگی زمانی در یک سری زمانی).

    این لایه یک فیلتر کانولوشن ایجاد می کند که با ورودی لایه پیچیده می شود تا یک تانسور خروجی تولید کند.

    اعلامیه

    @frozen
    public struct Conv1D<Scalar> : Layer where Scalar : TensorFlowFloatingPoint
  • یک لایه کانولوشن دو بعدی (به عنوان مثال پیچیدگی فضایی روی تصاویر).

    این لایه یک فیلتر کانولوشن ایجاد می کند که با ورودی لایه پیچیده می شود تا یک تانسور خروجی تولید کند.

    اعلامیه

    @frozen
    public struct Conv2D<Scalar> : Layer where Scalar : TensorFlowFloatingPoint
  • یک لایه کانولوشن سه بعدی برای پیچیدگی مکانی/مکانی-زمانی روی تصاویر.

    این لایه یک فیلتر کانولوشن ایجاد می کند که با ورودی لایه پیچیده می شود تا یک تانسور خروجی تولید کند.

    اعلامیه

    @frozen
    public struct Conv3D<Scalar> : Layer where Scalar : TensorFlowFloatingPoint
  • یک لایه کانولوشن جابجا شده 1 بعدی (مثلاً پیچیدگی انتقال زمانی روی تصاویر).

    این لایه یک فیلتر کانولوشن ایجاد می کند که با ورودی لایه ترانسپوز می شود تا یک تانسور خروجی تولید کند.

    اعلامیه

    @frozen
    public struct TransposedConv1D<Scalar> : Layer where Scalar : TensorFlowFloatingPoint
  • یک لایه کانولوشن جابجا شده دو بعدی (مثلاً پیچیدگی انتقال فضایی روی تصاویر).

    این لایه یک فیلتر کانولوشن ایجاد می کند که با ورودی لایه ترانسپوز می شود تا یک تانسور خروجی تولید کند.

    اعلامیه

    @frozen
    public struct TransposedConv2D<Scalar> : Layer where Scalar : TensorFlowFloatingPoint
  • یک لایه کانولوشن انتقالی سه بعدی (مثلاً پیچیدگی جابجا شده فضایی بر روی تصاویر).

    این لایه یک فیلتر کانولوشن ایجاد می کند که با ورودی لایه ترانسپوز می شود تا یک تانسور خروجی تولید کند.

    اعلامیه

    @frozen
    public struct TransposedConv3D<Scalar> : Layer where Scalar : TensorFlowFloatingPoint
  • یک لایه کانولوشن 2 بعدی در جهت عمق.

    این لایه فیلترهای کانولوشن قابل جداسازی را ایجاد می کند که با ورودی لایه پیچیده می شود تا یک تانسور خروجی تولید کند.

    اعلامیه

    @frozen
    public struct DepthwiseConv2D<Scalar> : Layer where Scalar : TensorFlowFloatingPoint
  • لایه ای برای افزودن لایه صفر در بعد زمانی.

    اعلامیه

    public struct ZeroPadding1D<Scalar> : ParameterlessLayer where Scalar : TensorFlowFloatingPoint
  • لایه ای برای افزودن لایه صفر در ابعاد فضایی.

    اعلامیه

    public struct ZeroPadding2D<Scalar> : ParameterlessLayer where Scalar : TensorFlowFloatingPoint
  • لایه ای برای افزودن لایه صفر در ابعاد مکانی/مکانی-زمانی.

    اعلامیه

    public struct ZeroPadding3D<Scalar> : ParameterlessLayer where Scalar : TensorFlowFloatingPoint
  • یک لایه پیچشی قابل جداسازی 1 بعدی.

    این لایه یک پیچیدگی عمیق را انجام می دهد که به طور جداگانه روی کانال ها عمل می کند و به دنبال آن یک پیچش نقطه ای که کانال ها را مخلوط می کند.

    اعلامیه

    @frozen
    public struct SeparableConv1D<Scalar> : Layer where Scalar : TensorFlowFloatingPoint
  • یک لایه پیچشی دو بعدی قابل جداسازی.

    این لایه یک پیچیدگی عمیق را انجام می دهد که به طور جداگانه روی کانال ها عمل می کند و به دنبال آن یک پیچش نقطه ای که کانال ها را مخلوط می کند.

    اعلامیه

    @frozen
    public struct SeparableConv2D<Scalar> : Layer where Scalar : TensorFlowFloatingPoint
  • یک لایه صاف.

    یک لایه مسطح بدون تأثیر بر اندازه دسته، ورودی را صاف می کند.

    اعلامیه

    @frozen
    public struct Flatten<Scalar> : ParameterlessLayer where Scalar : TensorFlowFloatingPoint
  • یک لایه تغییر شکل

    اعلامیه

    @frozen
    public struct Reshape<Scalar> : ParameterlessLayer where Scalar : TensorFlowFloatingPoint
  • لایه ای که یک تابع متمایز پذیر سفارشی را در بر می گیرد.

    اعلامیه

    public struct Function<Input, Output> : ParameterlessLayer where Input : Differentiable, Output : Differentiable
  • یک مقدار نوع پویا TensorFlow که می تواند از انواعی که با TensorFlowScalar مطابقت دارند ایجاد شود.

    اعلامیه

    public struct TensorDataType : Equatable
  • اعلامیه

    @frozen
    public struct BFloat16
    extension BFloat16: TensorFlowScalar
    extension BFloat16: XLAScalarType
  • مجموعه بالقوه بزرگی از عناصر را نشان می دهد.

    یک Dataset می تواند برای نمایش خط لوله ورودی به عنوان مجموعه ای از تانسورهای عنصر استفاده شود.

    اعلامیه

    @available(*, deprecated, message: "Datasets will be removed in S4TF v0.10. Please use the new Batches API instead.")
    @frozen
    public struct Dataset<Element> where Element : TensorGroup
    extension Dataset: Sequence
  • نوعی که امکان تکرار روی عناصر یک مجموعه داده را فراهم می کند.

    اعلامیه

    @available(*, deprecated)
    @frozen
    public struct DatasetIterator<Element> where Element : TensorGroup
    extension DatasetIterator: IteratorProtocol
  • یک ساختار 2 تایی مانند که با TensorGroup مطابقت دارد که نشان دهنده یک تاپل از 2 نوع مطابق با TensorGroup است.

    اعلامیه

    @frozen
    public struct Zip2TensorGroup<T, U> : TensorGroup where T : TensorGroup, U : TensorGroup
  • یک لایه شبکه عصبی با اتصال متراکم.

    Dense activation(matmul(input, weight) + bias) را پیاده‌سازی می‌کند، که در آن weight یک ماتریس وزن، bias یک بردار بایاس و activation یک تابع فعال‌سازی عنصر است.

    این لایه همچنین از تانسورهای وزن سه بعدی با ماتریس های بایاس دو بعدی پشتیبانی می کند. در این مورد، بعد اول هر دو به عنوان اندازه دسته ای در نظر گرفته می شود که با بعد اول input تراز است و از نوع دسته ای عملیات matmul(_:_:) استفاده می شود، بنابراین از وزن و بایاس متفاوت برای هر عنصر استفاده می شود. در دسته ورودی

    اعلامیه

    @frozen
    public struct Dense<Scalar> : Layer where Scalar : TensorFlowFloatingPoint
  • دستگاهی که می توان Tensor را روی آن تخصیص داد.

    اعلامیه

    public struct Device
    extension Device: Equatable
    extension Device: CustomStringConvertible
  • یک لایه ترک تحصیل

    Dropout شامل تنظیم تصادفی کسری از واحدهای ورودی به 0 در هر به روز رسانی در طول زمان آموزش است که به جلوگیری از برازش بیش از حد کمک می کند.

    اعلامیه

    @frozen
    public struct Dropout<Scalar> : ParameterlessLayer where Scalar : TensorFlowFloatingPoint
  • GaussianNoise نویز نمونه برداری شده از توزیع نرمال را اضافه می کند.

    نویز اضافه شده همیشه دارای میانگین صفر است، اما دارای یک انحراف استاندارد قابل تنظیم است.

    اعلامیه

    public struct GaussianNoise<Scalar> : ParameterlessLayer where Scalar : TensorFlowFloatingPoint
  • GaussianDropout ورودی را با نویز نمونه برداری شده از توزیع نرمال با میانگین 1.0 ضرب می کند.

    از آنجا که این یک لایه منظم است، فقط در طول زمان تمرین فعال است. در طول استنتاج، GaussianDropout بدون تغییر از ورودی عبور می کند.

    اعلامیه

    public struct GaussianDropout<Scalar> : ParameterlessLayer where Scalar : TensorFlowFloatingPoint
  • یک لایه ترک آلفا.

    Alpha Dropout یک Dropout است که میانگین و واریانس ورودی‌ها را به مقادیر اصلی خود نگه می‌دارد تا از ویژگی خود-نرمال‌سازی حتی پس از این انصراف اطمینان حاصل کند. Alpha Dropout با تنظیم تصادفی فعال‌سازی‌ها روی مقدار اشباع منفی، به‌خوبی با واحدهای خطی نمایی مقیاس‌شده مطابقت دارد.

    منبع : شبکه های عصبی خود عادی سازی: https://arxiv.org/abs/1706.02515

    اعلامیه

    @frozen
    public struct AlphaDropout<Scalar> : ParameterlessLayer where Scalar : TensorFlowFloatingPoint
  • یک لایه تعبیه شده

    Embedding در واقع یک جدول جستجو است که شاخص‌ها را از یک واژگان ثابت به نمایش‌های برداری با اندازه ثابت (متراکم) ترسیم می‌کند، به عنوان مثال [[0], [3]] -> [[0.25, 0.1], [0.6, -0.2]] .

    اعلامیه

    public struct Embedding<Scalar> : Module where Scalar : TensorFlowFloatingPoint
  • یک ساختار خالی که نشان دهنده s خالی TangentVector برای لایه های بدون پارامتر است.

  • جفت لحظه اول و دوم (یعنی میانگین و واریانس).

    توجه داشته باشید

    این مورد نیاز است زیرا انواع تاپلی قابل تمایز نیستند.

    اعلامیه

    public struct Moments<Scalar> : Differentiable where Scalar : TensorFlowFloatingPoint
  • یک لایه اتساع مورفولوژیکی 2 بعدی

    این لایه اتساع مورفوژیک تانسور ورودی را با فیلترهای ارائه شده برمی گرداند

    اعلامیه

    @frozen
    public struct Dilation2D<Scalar> : Layer where Scalar : TensorFlowFloatingPoint
  • یک لایه فرسایش مورفولوژیکی 2 بعدی

    این لایه فرسایش مورفوژیک تانسور ورودی را با فیلترهای ارائه شده برمی گرداند

    اعلامیه

    @frozen
    public struct Erosion2D<Scalar> : Layer where Scalar : TensorFlowFloatingPoint
  • انتخاب تنبلی از عناصر، به ترتیب معین، از برخی از مجموعه های پایه.

    اعلامیه

    public struct Sampling<Base: Collection, Selection: Collection>
    where Selection.Element == Base.Index
    extension Sampling: SamplingProtocol
    extension Sampling: Collection
    extension Sampling: BidirectionalCollection
      where Selection: BidirectionalCollection
    extension Sampling: RandomAccessCollection
      where Selection: RandomAccessCollection
  • مجموعه‌ای از طولانی‌ترین برش‌های پیوسته غیر همپوشانی برخی از مجموعه‌های Base ، که با اولین عنصر شروع می‌شوند و دارای حداکثر طول ثابت هستند.

    عناصر این مجموعه، به جز آخرین مورد، همه دارای count batchSize هستند، مگر اینکه Base.count % batchSize !=0 ، که در این صورت count آخرین دسته base.count % batchSize.

    اعلامیه

    public struct Slices<Base> where Base : Collection
    extension Slices: Collection
  • یک لایه عادی سازی دسته ای.

    فعال سازی لایه قبلی را در هر دسته عادی می کند، یعنی تبدیلی را اعمال می کند که میانگین فعال سازی را نزدیک به 0 و انحراف استاندارد فعال سازی را نزدیک به 1 حفظ می کند.

    مرجع: عادی سازی دسته ای: تسریع آموزش شبکه عمیق با کاهش تغییر متغیر داخلی .

    اعلامیه

    @frozen
    public struct BatchNorm<Scalar> : Layer where Scalar : TensorFlowFloatingPoint
  • لایه ای که نرمال سازی لایه را روی یک دسته کوچک از ورودی ها اعمال می کند.

    مرجع: عادی سازی لایه .

    اعلامیه

    @frozen
    public struct LayerNorm<Scalar> : Layer where Scalar : TensorFlowFloatingPoint
  • لایه ای که نرمال سازی گروه را روی یک دسته کوچک از ورودی ها اعمال می کند.

    مرجع: عادی سازی گروه .

    اعلامیه

    @frozen
    public struct GroupNorm<Scalar> : Layer where Scalar : TensorFlowFloatingPoint
  • لایه ای که عادی سازی نمونه را روی یک دسته کوچک از ورودی ها اعمال می کند.

    مرجع: عادی سازی نمونه: عنصر گمشده برای سبک سازی سریع .

    اعلامیه

    @frozen
    public struct InstanceNorm<Scalar> : Layer where Scalar : TensorFlowFloatingPoint
  • برای یک پله از یک وزنه در داخل یک بهینه ساز حالت دهید.

    اعلامیه

    public struct OptimizerWeightStepState
  • حالت جهانی از طریق StateAccessor قابل دسترسی است.

    اعلامیه

    public struct OptimizerState
  • [String: Float] اما عناصر را می توان به گونه ای که گویی عضو هستند دسترسی داشت.

    اعلامیه

    @dynamicMemberLookup
    public struct HyperparameterDictionary
  • یک بهینه ساز که روی یک گروه پارامتر کار می کند.

    اعلامیه

    public struct ParameterGroupOptimizer
  • یک بسته بندی ایمن در اطراف یک مقدار شاخص Int برای مقادیر محلی بهینه ساز.

    اعلامیه

    public struct LocalAccessor
  • یک بسته بندی ایمن در اطراف یک مقدار شاخص Int برای مقادیر جهانی بهینه ساز.

    اعلامیه

    public struct GlobalAccessor
  • یک بسته بندی ایمن در اطراف یک مقدار شاخص Int برای مقادیر حالت بهینه ساز.

    اعلامیه

    public struct StateAccessor
  • یک ParameterGroupOptimizer می سازد. این اساساً در سطح یک وزن در مدل استفاده می شود. نقشه برداری از گروه های پارامتر انتخاب شده توسط ( [Bool] به ParameterGroupOptimizer) بهینه ساز نهایی را مشخص می کند.

    اعلامیه

    public struct ParameterGroupOptimizerBuilder
  • یک لایه ادغام حداکثر برای داده های زمانی.

    اعلامیه

    @frozen
    public struct MaxPool1D<Scalar> : ParameterlessLayer where Scalar : TensorFlowFloatingPoint
  • حداکثر لایه ادغام برای داده های مکانی.

    اعلامیه

    @frozen
    public struct MaxPool2D<Scalar> : ParameterlessLayer where Scalar : TensorFlowFloatingPoint
  • یک لایه ادغام حداکثر برای داده های مکانی یا مکانی-زمانی.

    اعلامیه

    @frozen
    public struct MaxPool3D<Scalar> : ParameterlessLayer where Scalar : TensorFlowFloatingPoint
  • یک لایه ادغام متوسط ​​برای داده های زمانی.

    اعلامیه

    @frozen
    public struct AvgPool1D<Scalar> : ParameterlessLayer where Scalar : TensorFlowFloatingPoint
  • یک لایه ادغام متوسط ​​برای داده های مکانی.

    اعلامیه

    @frozen
    public struct AvgPool2D<Scalar> : ParameterlessLayer where Scalar : TensorFlowFloatingPoint
  • یک لایه ادغام متوسط ​​برای داده های مکانی یا مکانی-زمانی.

    اعلامیه

    @frozen
    public struct AvgPool3D<Scalar> : ParameterlessLayer where Scalar : TensorFlowFloatingPoint
  • یک لایه ادغام میانگین جهانی برای داده های زمانی.

    اعلامیه

    @frozen
    public struct GlobalAvgPool1D<Scalar> : ParameterlessLayer where Scalar : TensorFlowFloatingPoint
  • یک لایه ادغام میانگین جهانی برای داده های مکانی.

    اعلامیه

    @frozen
    public struct GlobalAvgPool2D<Scalar> : ParameterlessLayer where Scalar : TensorFlowFloatingPoint
  • یک لایه ادغام میانگین جهانی برای داده های مکانی و مکانی-زمانی.

    اعلامیه

    @frozen
    public struct GlobalAvgPool3D<Scalar> : ParameterlessLayer where Scalar : TensorFlowFloatingPoint
  • یک لایه ادغام حداکثر جهانی برای داده های زمانی.

    اعلامیه

    @frozen
    public struct GlobalMaxPool1D<Scalar> : ParameterlessLayer where Scalar : TensorFlowFloatingPoint
  • یک لایه ادغام حداکثر جهانی برای داده های مکانی.

    اعلامیه

    @frozen
    public struct GlobalMaxPool2D<Scalar> : ParameterlessLayer where Scalar : TensorFlowFloatingPoint
  • یک لایه ادغام حداکثر جهانی برای داده های مکانی و مکانی-زمانی.

    اعلامیه

    @frozen
    public struct GlobalMaxPool3D<Scalar> : ParameterlessLayer where Scalar : TensorFlowFloatingPoint
  • یک لایه ادغام حداکثر کسری برای داده های مکانی. توجه: FractionalMaxPool اجرای XLA ندارد و بنابراین ممکن است پیامدهای عملکردی داشته باشد.

    اعلامیه

    @frozen
    public struct FractionalMaxPool2D<Scalar> : ParameterlessLayer where Scalar : TensorFlowFloatingPoint
  • PythonObject یک شی را در پایتون نشان می دهد و از جستجوی اعضای پویا پشتیبانی می کند. هر دسترسی عضوی مانند object.foo به صورت پویا زمان اجرای پایتون را برای عضوی با نام مشخص شده در این شی درخواست می کند.

    PythonObject به همه فراخوانی‌های تابع پایتون و ارجاعات اعضا ارسال می‌شود و از آن بازگردانده می‌شود. از عملگرهای استاندارد ریاضی پایتون و مقایسه پشتیبانی می کند.

    در داخل، PythonObject به عنوان یک اشاره گر شمارش مرجع به PyObject Python C API پیاده سازی می شود.

    اعلامیه

    @dynamicCallable
    @dynamicMemberLookup
    public struct PythonObject
    extension PythonObject : CustomStringConvertible
    extension PythonObject : CustomPlaygroundDisplayConvertible
    extension PythonObject : CustomReflectable
    extension PythonObject : PythonConvertible, ConvertibleFromPython
    extension PythonObject : SignedNumeric
    extension PythonObject : Strideable
    extension PythonObject : Equatable, Comparable
    extension PythonObject : Hashable
    extension PythonObject : MutableCollection
    extension PythonObject : Sequence
    extension PythonObject : ExpressibleByBooleanLiteral, ExpressibleByIntegerLiteral,
    ExpressibleByFloatLiteral, ExpressibleByStringLiteral
    extension PythonObject : ExpressibleByArrayLiteral, ExpressibleByDictionaryLiteral
  • یک پوشش PythonObject که فراخوانی متد را فعال می کند. استثناهای تولید شده توسط توابع پایتون به عنوان خطاهای سوئیفت منعکس شده و پرتاب می شوند.

    توجه داشته باشید

    عمدی است که ThrowingPythonObject ویژگی @dynamicCallable را نداشته باشد زیرا نحو فراخوانی غیرواقعی است: x.throwing(arg1, arg2, ...) . تا زمان بحث/طراحی بیشتر، روش ها همچنان dynamicallyCall نامگذاری می شوند.

    اعلامیه

    public struct ThrowingPythonObject
  • یک بسته بندی PythonObject که دسترسی اعضا را امکان پذیر می کند. عملیات دسترسی اعضا یک نتیجه Optional را برمی‌گرداند. هنگامی که دسترسی اعضا ناموفق است، nil برگردانده می شود.

    اعلامیه

    @dynamicMemberLookup
    public struct CheckingPythonObject
  • یک رابط برای پایتون

    PythonInterface امکان تعامل با پایتون را فراهم می کند. می توان از آن برای وارد کردن ماژول ها و دسترسی پویا به انواع و توابع داخلی پایتون استفاده کرد.

    توجه داشته باشید

    برای PythonInterface در نظر گرفته نشده است که مستقیماً مقداردهی اولیه شود. در عوض، لطفاً از نمونه جهانی PythonInterface به نام Python استفاده کنید.

    اعلامیه

    @dynamicMemberLookup
    public struct PythonInterface
  • اعلامیه

    public struct PythonLibrary
  • یک مولد اعداد تصادفی پاک شده با نوع.

    نوع AnyRandomNumberGenerator عملیات تولید اعداد تصادفی را به یک مولد اعداد تصادفی زیربنایی می فرستد و نوع زیربنایی خاص خود را پنهان می کند.

    اعلامیه

    public struct AnyRandomNumberGenerator : RandomNumberGenerator
  • اجرای SeedableRandomNumberGenerator با استفاده از ARC4.

    ARC4 یک رمز جریان است که یک جریان شبه تصادفی از بایت ها تولید می کند. این PRNG از دانه به عنوان کلید خود استفاده می کند.

    ARC4 در Schneier، B.، "Cryptography کاربردی: پروتکل ها، الگوریتم ها، و کد منبع در C"، ویرایش دوم، 1996 توضیح داده شده است.

    یک ژنراتور مجزا از نظر نخ ایمن نیست، اما ژنراتورهای متمایز حالت مشترک ندارند. داده های تصادفی تولید شده از کیفیت بالایی برخوردار هستند، اما برای برنامه های رمزنگاری مناسب نیستند.

    اعلامیه

    @frozen
    public struct ARC4RandomNumberGenerator : SeedableRandomNumberGenerator
  • اجرای SeedableRandomNumberGenerator با استفاده از Threefry. سالمون و همکاران SC 2011. اعداد تصادفی موازی: به آسانی 1، 2، 3. http://www.thesalmons.org/john/random123/papers/random123sc11.pdf

    این ساختار یک PRNG 20 دور Threefry2x32 را پیاده سازی می کند. باید با مقدار 64 بیتی seed شود.

    یک ژنراتور مجزا از نظر نخ ایمن نیست، اما ژنراتورهای متمایز حالت مشترک ندارند. داده های تصادفی تولید شده از کیفیت بالایی برخوردار هستند، اما برای برنامه های رمزنگاری مناسب نیستند.

    اعلامیه

    public struct ThreefryRandomNumberGenerator : SeedableRandomNumberGenerator
  • اجرای SeedableRandomNumberGenerator با استفاده از Philox. سالمون و همکاران SC 2011. اعداد تصادفی موازی: به آسانی 1، 2، 3. http://www.thesalmons.org/john/random123/papers/random123sc11.pdf

    این ساختار یک PRNG 10 دور Philox4x32 را پیاده سازی می کند. باید با مقدار 64 بیتی seed شود.

    یک ژنراتور مجزا از نظر نخ ایمن نیست، اما ژنراتورهای متمایز حالت مشترک ندارند. داده های تصادفی تولید شده از کیفیت بالایی برخوردار هستند، اما برای برنامه های رمزنگاری مناسب نیستند.

    اعلامیه

    public struct PhiloxRandomNumberGenerator : SeedableRandomNumberGenerator
  • اعلامیه

    @frozen
    public struct UniformIntegerDistribution<T> : RandomDistribution where T : FixedWidthInteger
  • اعلامیه

    @frozen
    public struct UniformFloatingPointDistribution<T: BinaryFloatingPoint>: RandomDistribution
    where T.RawSignificand: FixedWidthInteger
  • اعلامیه

    @frozen
    public struct NormalDistribution<T: BinaryFloatingPoint>: RandomDistribution
    where T.RawSignificand: FixedWidthInteger
  • اعلامیه

    @frozen
    public struct BetaDistribution : RandomDistribution
  • ورودی یک شبکه عصبی بازگشتی

    اعلامیه

    public struct RNNCellInput<Input, State> : Differentiable where Input : Differentiable, State : Differentiable
    extension RNNCellInput: EuclideanDifferentiable
    where Input: EuclideanDifferentiable, State: EuclideanDifferentiable
  • خروجی یک شبکه عصبی بازگشتی

    اعلامیه

    public struct RNNCellOutput<Output, State> : Differentiable where Output : Differentiable, State : Differentiable
    extension RNNCellOutput: EuclideanDifferentiable
    where Output: EuclideanDifferentiable, State: EuclideanDifferentiable
  • یک سلول اصلی RNN

    اعلامیه

    public struct BasicRNNCell<Scalar> : RecurrentLayerCell where Scalar : TensorFlowFloatingPoint
  • یک سلول LSTM

    اعلامیه

    public struct LSTMCell<Scalar> : RecurrentLayerCell where Scalar : TensorFlowFloatingPoint
  • یک سلول GRU

    اعلامیه

    public struct GRUCell<Scalar> : RecurrentLayerCell where Scalar : TensorFlowFloatingPoint
  • اعلامیه

    public struct RecurrentLayer<Cell> : Layer where Cell : RecurrentLayerCell
    extension RecurrentLayer: Equatable where Cell: Equatable
    extension RecurrentLayer: AdditiveArithmetic where Cell: AdditiveArithmetic
  • اعلامیه

    public struct BidirectionalRecurrentLayer<Cell: RecurrentLayerCell>: Layer
    where Cell.TimeStepOutput: Mergeable
  • لایه ای که به صورت متوالی دو یا چند لایه دیگر را تشکیل می دهد.

    مثال ها:

    • یک مدل پرسپترون دو لایه ساده برای MNIST بسازید:
    let inputSize = 28 * 28
    let hiddenSize = 300
    var classifier = Sequential {
         Dense<Float>(inputSize: inputSize, outputSize: hiddenSize, activation: relu)
         Dense<Float>(inputSize: hiddenSize, outputSize: 3, activation: identity)
     }
    
    • یک رمزگذار خودکار برای MNIST بسازید:
    var autoencoder = Sequential {
        // The encoder.
        Dense<Float>(inputSize: 28 * 28, outputSize: 128, activation: relu)
        Dense<Float>(inputSize: 128, outputSize: 64, activation: relu)
        Dense<Float>(inputSize: 64, outputSize: 12, activation: relu)
        Dense<Float>(inputSize: 12, outputSize: 3, activation: relu)
        // The decoder.
        Dense<Float>(inputSize: 3, outputSize: 12, activation: relu)
        Dense<Float>(inputSize: 12, outputSize: 64, activation: relu)
        Dense<Float>(inputSize: 64, outputSize: 128, activation: relu)
        Dense<Float>(inputSize: 128, outputSize: imageHeight * imageWidth, activation: tanh)
    }
    

    اعلامیه

    public struct Sequential<Layer1: Module, Layer2: Layer>: Module
        where Layer1.Output == Layer2.Input,
              Layer1.TangentVector.VectorSpaceScalar == Layer2.TangentVector.VectorSpaceScalar
    extension Sequential: Layer where Layer1: Layer
  • اعلامیه

    @_functionBuilder
    public struct LayerBuilder
  • ShapedArray یک آرایه چند بعدی است. شکلی دارد که دارای نوع [Int] است و ابعاد آرایه را مشخص می کند و از یک TensorBuffer داخلی به عنوان ذخیره سازی استفاده می کند.

    اعلامیه

    @frozen
    public struct ShapedArray<Scalar> : _ShapedArrayProtocol
    extension ShapedArray: RandomAccessCollection, MutableCollection
    extension ShapedArray: CustomStringConvertible
    extension ShapedArray: CustomPlaygroundDisplayConvertible
    extension ShapedArray: CustomReflectable
    extension ShapedArray: ExpressibleByArrayLiteral where Scalar: TensorFlowScalar
    extension ShapedArray: Equatable where Scalar: Equatable
    extension ShapedArray: Hashable where Scalar: Hashable
    extension ShapedArray: Codable where Scalar: Codable
  • یک برش پیوسته از یک نمونه ShapedArray یا ShapedArraySlice .

    ShapedArraySlice عملیات سریع و کارآمد را در برش های پیوسته از نمونه های ShapedArray فعال می کند. نمونه های ShapedArraySlice فضای ذخیره سازی خود را ندارند. در عوض، آنها نمایی از فضای ذخیره سازی ShapedArray پایه خود را ارائه می دهند. ShapedArraySlice می تواند دو نوع مختلف از برش ها را نشان دهد: آرایه های عنصر و زیرآرایه.

    آرایه های عنصر عناصر زیربعدی یک ShapedArray هستند: رتبه آنها یک کمتر از پایه آنها است. برش های آرایه عناصر با نمایه سازی یک نمونه ShapedArray با شاخص Int32 منفرد به دست می آیند.

    به عنوان مثال:

        var matrix = ShapedArray(shape: [2, 2], scalars: [0, 1, 2, 3])
        // `matrix` represents [[0, 1], [2, 3]].
    
        let element = matrix[0]
        // `element` is a `ShapedArraySlice` with shape [2]. It is an element
        // array, specifically the first element in `matrix`: [0, 1].
    
        matrix[1] = ShapedArraySlice(shape: [2], scalars: [4, 8])
        // The second element in `matrix` has been mutated.
        // `matrix` now represents [[0, 1, 4, 8]].
    

    زیرآرایه ها محدوده پیوسته ای از عناصر یک ShapedArray هستند. رتبه یک زیرآرایه با پایه آن یکسان است، اما بعد اصلی آن تعداد محدوده برش است. برش های زیرآرایی با نمایه سازی ShapedArray با Range<Int32> به دست می آیند که گستره ای از عناصر (در بعد اصلی) را نشان می دهد. متدهایی مانند prefix(:) و suffix(:) که به صورت داخلی با یک محدوده ایندکس می شوند نیز زیرآرایه تولید می کنند.

    به عنوان مثال:

        let zeros = ShapedArray(repeating: 0, shape: [3, 2])
        var matrix = ShapedArray(shape: [3, 2], scalars: Array(0..<6))
        // `zeros` represents [[0, 0], [0, 0], [0, 0]].
        // `matrix` represents [[0, 1], [2, 3], [4, 5]].
    
        let subarray = matrix.prefix(2)
        // `subarray` is a `ShapedArraySlice` with shape [2, 2]. It is a slice
        // of the first 2 elements in `matrix` and represents [[0, 1], [2, 3]].
    
        matrix[0..<2] = zeros.prefix(2)
        // The first 2 elements in `matrix` have been mutated.
        // `matrix` now represents [[0, 0], [0, 0], [4, 5]].
    

    اعلامیه

    @frozen
    public struct ShapedArraySlice<Scalar> : _ShapedArrayProtocol
    extension ShapedArraySlice: RandomAccessCollection, MutableCollection
    extension ShapedArraySlice: CustomStringConvertible
    extension ShapedArraySlice: CustomPlaygroundDisplayConvertible
    extension ShapedArraySlice: CustomReflectable
    extension ShapedArraySlice: ExpressibleByArrayLiteral where Scalar: TensorFlowScalar
    extension ShapedArraySlice: Equatable where Scalar: Equatable
    extension ShapedArraySlice: Hashable where Scalar: Hashable
    extension ShapedArraySlice: Codable where Scalar: Codable
  • StringTensor یک آرایه چند بعدی است که عناصر آن String s هستند.

    اعلامیه

    @frozen
    public struct StringTensor
    extension StringTensor: TensorGroup
  • TensorHandle نوعی است که توسط ops استفاده می شود. این شامل یک نوع Scalar است که داخلی کامپایلر می تواند از آن برای تعیین نوع داده پارامترها هنگام استخراج آنها در یک برنامه تانسور استفاده کند.

    اعلامیه

    public struct TensorHandle<Scalar> where Scalar : _TensorFlowDataTypeCompatible
    extension TensorHandle: TensorGroup
  • اعلامیه

    public struct ResourceHandle
    extension ResourceHandle: TensorGroup
  • اعلامیه

    public struct VariantHandle
    extension VariantHandle: TensorGroup
  • ساختاری که شکل یک تانسور را نشان می دهد.

    TensorShape یک پوشش نازک در اطراف آرایه ای از اعداد صحیح است که ابعاد شکل را نشان می دهد. همه انواع تانسور از TensorShape برای نشان دادن شکل خود استفاده می کنند.

    اعلامیه

    @frozen
    public struct TensorShape : ExpressibleByArrayLiteral
    extension TensorShape: Collection, MutableCollection
    extension TensorShape: RandomAccessCollection
    extension TensorShape: RangeReplaceableCollection
    extension TensorShape: Equatable
    extension TensorShape: Codable
    extension TensorShape: CustomStringConvertible
  • TensorVisitorPlan به [WritableKeyPath<Base, Tensor<Float>] تقریبی است اما کارآمدتر است. این برای نوشتن بهینه‌سازهای عمومی که می‌خواهند بر روی گرادیان‌ها، وزن‌های موجود، و شاخصی که می‌تواند برای یافتن وزن‌های ذخیره شده کمکی استفاده شود، نقشه‌برداری کنند، مفید است. این کمی کارآمدتر است (~2x) اما می‌تواند بهتر باشد زیرا هزینه‌های سربار کمی بالاتر (ارجاع اشاره گر اضافی) را برای عدم انجام کارهای O(depth_of_tree) که با یک لیست ساده برای ردیابی هر KeyPath مورد نیاز است، عوض می‌کند.

    اعلامیه

    public struct TensorVisitorPlan<Base>
  • یک لایه upsampling برای ورودی های 1 بعدی.

    اعلامیه

    @frozen
    public struct UpSampling1D<Scalar> : ParameterlessLayer where Scalar : TensorFlowFloatingPoint
  • یک لایه upsampling برای ورودی های دو بعدی.

    اعلامیه

    @frozen
    public struct UpSampling2D<Scalar> : ParameterlessLayer where Scalar : TensorFlowFloatingPoint
  • یک لایه upsampling برای ورودی های سه بعدی.

    اعلامیه

    @frozen
    public struct UpSampling3D<Scalar> : ParameterlessLayer where Scalar : TensorFlowFloatingPoint
  • شمارنده های پیش بینی صحیح و مجموع ضرر را جمع آوری می کند.

    اعلامیه

    public struct HostStatistics