البروتوكولات

البروتوكولات التالية متاحة عالميًا.

  • يوفر نقاط التخصيص لخوارزميات 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
  • طبقة الشبكة العصبية.

    تمثل الأنواع التي تتوافق مع 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