ساختارهای زیر در سطح جهانی در دسترس هستند.
الحاق دو دنباله با یک نوع عنصر.
اعلامیه
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
اعلامیه
مجموعه بالقوه بزرگی از عناصر را نشان می دهد.
یک
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 EmptyTangentVector: EuclideanDifferentiable, VectorProtocol, ElementaryFunctions, PointwiseMultiplicative, KeyPathIterable
جفت لحظه اول و دوم (یعنی میانگین و واریانس).
توجه داشته باشید
این مورد نیاز است زیرا انواع تاپلی قابل تمایز نیستند.اعلامیه
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) }
اعلامیه
@_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