الهياكل التالية متاحة عالميًا.
سلسلة من تسلسلين بنفس نوع العنصر.
تصريح
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
وظيفة التراجع التي تقوم بتبديل بث اثنين من
Tensors
.تصريح
public struct BroadcastingPullback
سياق يقوم بتخزين المعلومات السياقية المحلية لسلسلة المحادثات التي تستخدمها واجهات برمجة تطبيقات التعلم العميق مثل الطبقات.
استخدم
Context.local
لاسترداد سياق مؤشر الترابط المحلي الحالي.أمثلة:
- قم بتعيين مرحلة التعلم الحالية على التدريب بحيث تقوم طبقات مثل
BatchNorm
بحساب المتوسط والتباين عند تطبيقها على المدخلات.
Context.local.learningPhase = .training
- قم بتعيين مرحلة التعلم الحالية على الاستدلال بحيث لا تسقط الطبقات مثل
Dropout
الوحدات عند تطبيقها على المدخلات.
Context.local.learningPhase = .inference
تصريح
public struct Context
- قم بتعيين مرحلة التعلم الحالية على التدريب بحيث تقوم طبقات مثل
طبقة الالتواء أحادية الأبعاد (على سبيل المثال الالتفاف الزمني عبر سلسلة زمنية).
تقوم هذه الطبقة بإنشاء مرشح تلافيفي يتم دمجه مع مدخلات الطبقة لإنتاج موتر من المخرجات.
تصريح
@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
طبقة الالتواء المنقولة أحادية الأبعاد (على سبيل المثال، الالتواء المنقول مؤقتًا فوق الصور).
تقوم هذه الطبقة بإنشاء مرشح تلافيفي يتم تبديله مع مدخلات الطبقة لإنتاج موتر من المخرجات.
تصريح
@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
طبقة تلافيفية عميقة ثنائية الأبعاد.
تقوم هذه الطبقة بإنشاء مرشحات تلافيفية منفصلة يتم دمجها مع مدخلات الطبقة لإنتاج موتر من المخرجات.
تصريح
@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
طبقة تلافيفية قابلة للفصل أحادية الأبعاد.
تقوم هذه الطبقة بإجراء التفاف عميق يعمل بشكل منفصل على القنوات متبوعًا بالتفاف نقطي يمزج القنوات.
تصريح
@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
بنية تشبه صفين تتوافق مع TensorGroup وتمثل صفًا من نوعين يتوافقان مع
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
طبقة التسرب.
يتكون التسرب من تعيين جزء من وحدات الإدخال بشكل عشوائي على
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
بنية فارغة تمثل
TangentVector
s الفارغة للطبقات التي لا تحتوي على معلمات.تصريح
public struct EmptyTangentVector: EuclideanDifferentiable, VectorProtocol, ElementaryFunctions, PointwiseMultiplicative, KeyPathIterable
زوج من اللحظات الأولى والثانية (أي المتوسط والتباين).
ملحوظة
يعد ذلك ضروريًا لأن أنواع الصف غير قابلة للتمييز.تصريح
public struct Moments<Scalar> : Differentiable where Scalar : TensorFlowFloatingPoint
طبقة التمدد المورفولوجية ثنائية الأبعاد
تُرجع هذه الطبقة التمدد الشكلي لموتر الإدخال باستخدام المرشحات المتوفرة
تصريح
@frozen public struct Dilation2D<Scalar> : Layer where Scalar : TensorFlowFloatingPoint
طبقة التآكل المورفولوجية ثنائية الأبعاد
تُرجع هذه الطبقة التآكل المورفولوجي لموتر الإدخال باستخدام المرشحات المتوفرة
تصريح
@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
كائنًا في Python ويدعم البحث الديناميكي عن الأعضاء. أي وصول للعضو مثلobject.foo
سيطلب ديناميكيًا وقت تشغيل Python لعضو يحمل الاسم المحدد في هذا الكائن.يتم تمرير
PythonObject
إلى جميع استدعاءات وظائف Python ومراجع الأعضاء وإعادتها منها. وهو يدعم العمليات الحسابية والمقارنة القياسية في بايثون.داخليًا، يتم تنفيذ
PythonObject
كمؤشر مُعد مرجعيًا إلى Python C APIPyObject
.تصريح
@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
بالتفاعل مع Python. يمكن استخدامه لاستيراد الوحدات النمطية والوصول ديناميكيًا إلى أنواع ووظائف Python المضمنة.ملحوظة
ليس المقصود أن تتم تهيئةPythonInterface
مباشرة. بدلاً من ذلك، يرجى استخدام المثيل العام لـPythonInterface
المسمىPython
.تصريح
@dynamicMemberLookup public struct PythonInterface
تصريح
public struct PythonLibrary
مولد رقم عشوائي تم مسحه من النوع.
يقوم نوع
AnyRandomNumberGenerator
بإعادة توجيه عمليات توليد الأرقام العشوائية إلى مولد أرقام عشوائي أساسي، مما يخفي نوعه الأساسي المحدد.تصريح
public struct AnyRandomNumberGenerator : RandomNumberGenerator
تنفيذ
SeedableRandomNumberGenerator
باستخدام ARC4.ARC4 عبارة عن تشفير دفق يقوم بإنشاء دفق عشوائي زائف من البايتات. يستخدم PRNG البذور كمفتاح له.
تم وصف ARC4 في Schneier, B.، "التشفير التطبيقي: البروتوكولات والخوارزميات وكود المصدر في لغة C"، الطبعة الثانية، 1996.
المولد الفردي ليس آمنًا لسلسلة العمليات، لكن المولدات المميزة لا تشترك في الحالة. البيانات العشوائية التي تم إنشاؤها عالية الجودة، ولكنها غير مناسبة لتطبيقات التشفير.
تصريح
@frozen public struct ARC4RandomNumberGenerator : SeedableRandomNumberGenerator
تنفيذ
SeedableRandomNumberGenerator
باستخدام Threefry. سمك السلمون وآخرون. SC 2011. الأرقام العشوائية المتوازية: سهلة مثل 1، 2، 3. http://www.thesalmons.org/john/random123/papers/random123sc11.pdfيطبق هذا الهيكل 20 جولة Threefry2x32 PRNG. ويجب أن يكون مصنفًا بقيمة 64 بت.
المولد الفردي ليس آمنًا لسلسلة العمليات، لكن المولدات المميزة لا تشترك في الحالة. البيانات العشوائية التي تم إنشاؤها عالية الجودة، ولكنها غير مناسبة لتطبيقات التشفير.
تصريح
public struct ThreefryRandomNumberGenerator : SeedableRandomNumberGenerator
تنفيذ
SeedableRandomNumberGenerator
باستخدام Philox. سمك السلمون وآخرون. SC 2011. الأرقام العشوائية المتوازية: سهلة مثل 1، 2، 3. http://www.thesalmons.org/john/random123/papers/random123sc11.pdfيطبق هذا الهيكل Philox4x32 PRNG ذو 10 جولات. يجب أن يكون مصنفًا بقيمة 64 بت.
المولد الفردي ليس آمنًا لسلسلة العمليات، لكن المولدات المميزة لا تشترك في الحالة. البيانات العشوائية التي تم إنشاؤها عالية الجودة، ولكنها غير مناسبة لتطبيقات التشفير.
تصريح
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
هو النوع الذي تستخدمه العمليات. وهو يشتمل على نوع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(عمق_of_tree) المطلوب مع قائمة عادية لتعقب كل KeyPath على حدة.تصريح
public struct TensorVisitorPlan<Base>
طبقة الاختزال للمدخلات 1-D.
تصريح
@frozen public struct UpSampling1D<Scalar> : ParameterlessLayer where Scalar : TensorFlowFloatingPoint
طبقة تكبير للمدخلات ثنائية الأبعاد.
تصريح
@frozen public struct UpSampling2D<Scalar> : ParameterlessLayer where Scalar : TensorFlowFloatingPoint
طبقة تكبير للمدخلات ثلاثية الأبعاد.
تصريح
@frozen public struct UpSampling3D<Scalar> : ParameterlessLayer where Scalar : TensorFlowFloatingPoint
يجمع عدادات التنبؤ الصحيحة وإجماليات الخسارة.
تصريح
public struct HostStatistics