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

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

  • يوفر نقطة التخصيص ل 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 يمكن أن تستخدم في Scalar نوع يرتبط بها من Tensor .

  • نوع بيانات عدد صحيح يمثل أنواع الأعداد الصحيحة التي يمكن استخدامها كمؤشرات موتر في 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 من طبقات parameterless دائما EmptyTangentVector .

    إعلان

    public protocol ParameterlessLayer : Layer where Self.TangentVector == EmptyTangentVector
  • نوع يتوفر به وظائف أولية.

    على "وظيفة الابتدائية" هي وظيفة تراكمت من القوى والجذور، exponentials، اللوغاريتمات، الدوال المثلثية (الخطيئة، كوس، تان) والعكوس، ووظائف القطعي (سينه، الهراوة، تان) والعكوس بهم.

    يعني التوافق مع هذا البروتوكول أن جميع وحدات البناء هذه متاحة كوظائف ثابتة على النوع.

    let x: Float = 1
    let y = Float.sin(x) // 0.84147096
    

    إعلان

    public protocol ElementaryFunctions
  • نوع يمكن تحويل خصائص وعناصر موتر الفاصلة العائمة المتداخلة من الدقة الكاملة إلى الدقة المنخفضة والعكس صحيح.

  • تفصيل تطبيق استخدامها لعمل حول حقيقة أن سويفت لا يمكن التعبير عن القيد عام أن بعض نوع يجب أن يكون مثيل 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