निम्नलिखित प्रोटोकॉल विश्व स्तर पर उपलब्ध हैं।
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 के साथ संगत है।टिप्पणी
जबScalar
संबंधित प्रकारTensorFlowFloatingPoint
के अनुरूप होता है, तोTensor
सशर्त रूप सेDifferentiable
के अनुरूप होता है।घोषणा
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) और उनके व्युत्क्रमों तथा अतिपरवलयिक फलनों (सिंह, कोश, तन्ह) और उनके व्युत्क्रमों से निर्मित एक फलन है।
इस प्रोटोकॉल के अनुरूप होने का मतलब है कि ये सभी बिल्डिंग ब्लॉक प्रकार पर स्थिर कार्यों के रूप में उपलब्ध हैं।
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
एक प्रकार जो बीज योग्य नियतात्मक छद्म-यादृच्छिक डेटा प्रदान करता है।
एक SeadableRandomNumberGenerator का उपयोग कहीं भी किया जा सकता है जहां एक RandomNumberGenerator का उपयोग किया जाएगा। यह तब उपयोगी होता है जब छद्म-यादृच्छिक डेटा को रनों में पुन: प्रस्तुत करने की आवश्यकता होती है।
SeadableRandomNumberGenerator प्रोटोकॉल के अनुरूप
एक कस्टम प्रकार को
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
टेंसरफ़्लो संचालन को कॉल करने के लिए विशेष प्रोटोकॉल जो इनपुट के रूप में विषम सरणी लेते हैं।
घोषणा
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
एक Tensor ऑपरेशन के तर्क के रूप में उपयोग किया जाता है, तो इसे एक तर्क सूची के रूप में पारित किया जाता है जिसके तत्व प्रकार के Tensor फ़ील्ड होते हैं।जब एक टेंसर ऑपरेशन के परिणामस्वरूप एक
TensorGroup
लौटाया जाता है, तो इसे टेंसर ऑपरेशन के टेंसर परिणामों पर सेट किए गए टेंसर फ़ील्ड के साथ प्रारंभ किया जाता है।घोषणा
public protocol TensorGroup : TensorArrayProtocol
x10 में एक समर्थित डेटाटाइप.
घोषणा
public protocol XLAScalarType