البروتوكولات التالية متاحة عالميًا.
يوفر نقاط التخصيص لخوارزميات
MutableCollection
.إذا تم دمجها في المكتبة القياسية، فستكون هذه المتطلبات مجرد جزء من
MutableCollection
. في غضون ذلك، يمكنك إعلان توافق مجموعة معMutableCollectionAlgorithms
للحصول على نقاط التخصيص هذه لاستخدامها من خوارزميات أخرى محددة فيMutableCollectionAlgorithms
.تصريح
public protocol MutableCollectionAlgorithms: MutableCollection where SubSequence: MutableCollectionAlgorithms
تصريح
public protocol TensorFlowScalar : _TensorFlowDataTypeCompatible
تصريح
public protocol TensorRangeExpression
الأنواع التي يمكن تجميع عناصرها في بعض العناصر ذات الرتبة الأعلى من نفس النوع (مثال: الموترات، مجموعة الموترات)
تصريح
public protocol Collatable
نوع يمكن نسخ خصائصه وعناصره المتداخلة إلى
Device
.تصريح
public protocol CopyableToDevice : _CopyableToDevice
نوع توفر قيمه مسارات مفاتيح مخصصة للخصائص أو العناصر.
تصريح
public protocol KeyPathIterable : _KeyPathIterableBase
نوع بيانات عددي متوافق مع TensorFlow.
يمكن استخدام الأنواع التي تتوافق مع
TensorFlowScalar
كنوعTensor
المرتبط بـScalar
.نوع بيانات عدد صحيح يمثل أنواعًا صحيحة يمكن استخدامها كمؤشرات موتر في TensorFlow.
تصريح
public protocol TensorFlowIndex : BinaryInteger, TensorFlowScalar
نوع بيانات فاصلة عائمة يتوافق مع
Differentiable
ومتوافق مع TensorFlow.ملحوظة
يتوافقTensor
بشكل مشروط معDifferentiable
عندما يتوافق النوعScalar
المرتبط معTensorFlowFloatingPoint
.تصريح
public protocol TensorFlowFloatingPoint: TensorFlowScalar & BinaryFloatingPoint & Differentiable & ElementaryFunctions where Self.RawSignificand: FixedWidthInteger, Self == Self.TangentVector
نوع يمثل رياضيًا متشعبًا قابلاً للتفاضل تكون مساحات الظل الخاصة به ذات أبعاد محدودة.
تصريح
public protocol Differentiable
نوع ذو قيم تدعم الضرب النقطي.
تصريح
public protocol PointwiseMultiplicative : AdditiveArithmetic
نوع يمثل مساحة متجهة غير مرتبة. القيم من هذا النوع هي عناصر في هذا الفضاء المتجه وليس لها شكل أو شكل ثابت.
تصريح
public protocol VectorProtocol : AdditiveArithmetic
نوع قابل للتمييز في الفضاء الإقليدي. قد يمثل النوع مساحة متجهة، أو يتكون من مساحة متجهة وبعض المكونات الأخرى غير القابلة للتمييز.
رياضيًا، يمثل هذا مشعب منتج يتكون من مساحة متجهة قابلة للتفاضل وبعض المتشعبات العشوائية، حيث تكون حزمة الظل لمشعب المنتج بأكمله مساوية لمكون مساحة المتجه.
يعد هذا التجريد مفيدًا لتمثيل هياكل البيانات الشائعة القابلة للتفاضل والتي تحتوي على كل من خصائص المتجهات القابلة للتفاضل والخصائص المخزنة الأخرى التي لا تحتوي على مشتق، على سبيل المثال
struct Perceptron: @memberwise EuclideanDifferentiable { var weight: SIMD16<Float> var bias: Float @noDerivative var useBias: Bool }
ملحوظة
قم بمطابقة النوع معEuclideanDifferentiable
إذا كان قابلاً للتمييز فقط فيما يتعلق بمكون الفضاء المتجه الخاص به وعندما يكونTangentVector
الخاص به مساوياً لمكون الفضاء المتجه الخاص به.تصريح
public protocol EuclideanDifferentiable : Differentiable
تصريح
public protocol Module: EuclideanDifferentiable, KeyPathIterable where TangentVector: VectorProtocol & ElementaryFunctions & PointwiseMultiplicative & KeyPathIterable
طبقة الشبكة العصبية.
تمثل الأنواع التي تتوافق مع
Layer
الوظائف التي تقوم بتعيين المدخلات إلى المخرجات. قد يكون لديهم حالة داخلية ممثلة بمعلمات، مثل موترات الوزن.تحدد مثيلات
Layer
طريقةcallAsFunction(_:)
قابلة للتمييز لتعيين المدخلات إلى المخرجات.تصريح
public protocol Layer : Module where Self.Input : Differentiable
طبقة شبكة عصبية بدون معلمات.
يكون
TangentVector
للطبقات التي لا تحتوي على معلمات دائمًاEmptyTangentVector
.تصريح
public protocol ParameterlessLayer : Layer where Self.TangentVector == EmptyTangentVector
نوع يحتوي على وظائف أولية متاحة.
"الدالة الأولية" هي دالة مبنية على القوى والجذور والأُسيات واللوغاريتمات والدوال المثلثية (sin، cos، tan) وعكساتها، والدوال الزائدية (sinh، cosh، tanh) وعكساتها.
ويعني التوافق مع هذا البروتوكول أن كل هذه العناصر الأساسية متاحة كوظائف ثابتة على النوع.
let x: Float = 1 let y = Float.sin(x) // 0.84147096
تصريح
public protocol ElementaryFunctions
نوع يمكن تحويل خصائص وعناصر موتر الفاصلة العائمة المتداخلة من الدقة الكاملة إلى الدقة المنخفضة والعكس صحيح.
تفاصيل التنفيذ المستخدمة للتغلب على حقيقة أن Swift لا يمكنه التعبير عن قيد عام يجب أن يكون بعض النوع فيه مثيلًا لـ
Sampling
.تصريح
public protocol SamplingProtocol : Collection
نوع يمكن تهيئته من نسخة
numpy.ndarray
ممثلة كـPythonObject
.تصريح
public protocol ConvertibleFromNumpyArray
نوع متوافق مع نوع واحد أو أكثر من أنواع NumPy العددية.
تصريح
public protocol NumpyScalarCompatible
نوع يمكن تحويل قيمه إلى
PythonObject
.تصريح
public protocol PythonConvertible
نوع يمكن تهيئته من
PythonObject
.تصريح
public protocol ConvertibleFromPython
نوع يوفر بيانات عشوائية زائفة حتمية قابلة للزرع.
يمكن استخدام SeedableRandomNumberGenerator في أي مكان حيث سيتم استخدام RandomNumberGenerator. يكون ذلك مفيدًا عندما تحتاج البيانات العشوائية الزائفة إلى أن تكون قابلة للتكرار عبر عمليات التشغيل.
متوافق مع بروتوكول SeedableRandomNumberGenerator
لجعل النوع المخصص يتوافق مع بروتوكول
SeedableRandomNumberGenerator
، قم بتنفيذ مُهيئinit(seed: [UInt8])
، بالإضافة إلى متطلباتRandomNumberGenerator
. يجب أن تشكل القيم التي يتم إرجاعها بواسطةnext()
تسلسلًا محددًا يعتمد فقط على البذرة المقدمة عند التهيئة.تصريح
public protocol SeedableRandomNumberGenerator : RandomNumberGenerator
تصريح
public protocol RandomDistribution
خلية طبقة متكررة.
تصريح
public protocol RecurrentLayerCell: Layer where Input == RNNCellInput<TimeStepInput, State>, Output == RNNCellOutput<TimeStepOutput, State>
نوع ذو قيم تدعم العمليات الثنائية القابلة للتمييز.
يتم استخدامه بواسطة
BidirectionalRecurrentLayer
كمتطلب عام لوظائف الدمج.تصريح
public protocol Mergeable : AdditiveArithmetic, Differentiable
تصريح
public protocol TensorOperation
تصريح
public protocol TFTensorOperation : TensorOperation
بروتوكول خاص لاستدعاء عمليات Tensorflow التي تأخذ صفائف غير متجانسة كمدخلات.
تصريح
public protocol AnyTensor
تصريح
public protocol TensorProtocol
تصريح
public protocol DifferentiableTensorProtocol: TensorProtocol & Differentiable & EuclideanDifferentiable where Scalar: TensorFlowFloatingPoint
بروتوكول يمثل الأنواع التي يمكن تعيينها إلى
Array<CTensorHandle>
.يتم تعريف هذا البروتوكول بشكل منفصل عن
TensorGroup
من أجل تحديد عدد الموترات في وقت التشغيل. على سبيل المثال، قد يحتوي[Tensor<Float>]
على عدد غير معروف من العناصر في وقت الترجمة.يمكن اشتقاق هذا البروتوكول تلقائيًا للبنيات التي تتوافق جميع خصائصها المخزنة مع بروتوكول
TensorGroup
. لا يمكن اشتقاقها تلقائيًا للبنيات التي تتوافق جميع خصائصها معTensorArrayProtocol
نظرًا لمتطلبات المنشئ (أي، في مثل هذه الحالات سيكون من المستحيل معرفة كيفية تقسيمcount
بين الخصائص المخزنة).تصريح
public protocol TensorArrayProtocol
بروتوكول يمثل الأنواع التي يمكن تعيينها من وإلى
Array<CTensorHandle>
.عند استخدام
TensorGroup
كوسيطة لعملية موتر، يتم تمريرها كقائمة وسيطات تكون عناصرها هي حقول الموتر من النوع.عندما يتم إرجاع
TensorGroup
نتيجة لعملية موتر، تتم تهيئته مع تعيين حقول الموتر الخاصة به على نتائج موتر عملية الموتر.تصريح
public protocol TensorGroup : TensorArrayProtocol
نوع بيانات مدعوم في x10.
تصريح
public protocol XLAScalarType