Protokol

Protokol berikut tersedia secara global.

  • Memberikan poin penyesuaian untuk algoritma MutableCollection .

    Jika dimasukkan ke dalam perpustakaan standar, persyaratan ini hanya akan menjadi bagian dari MutableCollection . Sementara itu, Anda dapat mendeklarasikan kesesuaian koleksi ke MutableCollectionAlgorithms agar titik penyesuaian ini dapat digunakan dari algoritme lain yang ditentukan pada MutableCollectionAlgorithms .

    Pernyataan

    public protocol MutableCollectionAlgorithms: MutableCollection
    where SubSequence: MutableCollectionAlgorithms
  • Pernyataan

    public protocol TensorFlowScalar : _TensorFlowDataTypeCompatible
  • Pernyataan

    public protocol TensorRangeExpression
  • Tipe yang elemennya dapat disusun dalam beberapa elemen berperingkat lebih tinggi dari tipe yang sama (contoh: tensor, tupel tensor)

    Pernyataan

    public protocol Collatable
  • Tipe yang properti dan elemen bersarangnya dapat disalin ke Device .

    Pernyataan

    public protocol CopyableToDevice : _CopyableToDevice
  • Tipe yang nilainya menyediakan jalur kunci kustom ke properti atau elemen.

    Pernyataan

    public protocol KeyPathIterable : _KeyPathIterableBase
  • Tipe data skalar yang kompatibel dengan TensorFlow.

    Tipe yang sesuai dengan TensorFlowScalar dapat digunakan sebagai tipe Tensor yang terkait dengan Scalar .

  • Tipe data bilangan bulat yang mewakili tipe bilangan bulat yang dapat digunakan sebagai indeks tensor di TensorFlow.

    Pernyataan

    public protocol TensorFlowIndex : BinaryInteger, TensorFlowScalar
  • Tipe data floating-point yang sesuai dengan Differentiable dan kompatibel dengan TensorFlow.

    Catatan

    Tensor secara kondisional sesuai dengan Differentiable ketika tipe terkait Scalar sesuai dengan TensorFlowFloatingPoint .

    Pernyataan

    public protocol TensorFlowFloatingPoint:
      TensorFlowScalar & BinaryFloatingPoint & Differentiable & ElementaryFunctions
    where
      Self.RawSignificand: FixedWidthInteger,
      Self == Self.TangentVector
  • Suatu tipe yang secara matematis mewakili manifold terdiferensiasi yang ruang singgungnya berdimensi terbatas.

    Pernyataan

    public protocol Differentiable
  • Tipe dengan nilai yang mendukung perkalian searah.

    Pernyataan

    public protocol PointwiseMultiplicative : AdditiveArithmetic
  • Tipe yang merepresentasikan ruang vektor yang tidak memiliki peringkat. Nilai jenis ini adalah elemen dalam ruang vektor ini dan tidak mempunyai bentuk atau bentuk statis.

    Pernyataan

    public protocol VectorProtocol : AdditiveArithmetic
  • Suatu tipe yang dapat dibedakan dalam ruang Euclidean. Tipe tersebut dapat mewakili ruang vektor, atau terdiri dari ruang vektor dan beberapa komponen lain yang tidak dapat dibedakan.

    Secara matematis, ini merepresentasikan manifold hasil kali yang terdiri dari ruang vektor terdiferensiasi dan beberapa manifold sembarang, yang mana kumpulan tangen seluruh manifold hasil kali sama dengan komponen ruang vektor.

    Abstraksi ini berguna untuk mewakili struktur data terdiferensiasi umum yang berisi properti vektor terdiferensiasi dan properti tersimpan lainnya yang tidak memiliki turunan, misalnya

    struct Perceptron: @memberwise EuclideanDifferentiable {
        var weight: SIMD16<Float>
        var bias: Float
        @noDerivative var useBias: Bool
    }
    

    Catatan

    Sesuaikan suatu tipe dengan EuclideanDifferentiable jika tipe tersebut hanya dapat terdiferensiasi terhadap komponen ruang vektornya dan ketika TangentVector nya sama dengan komponen ruang vektornya.

    Pernyataan

    public protocol EuclideanDifferentiable : Differentiable
  • Lapisan jaringan saraf.

    Tipe yang sesuai dengan Layer mewakili fungsi yang memetakan masukan ke keluaran. Mereka mungkin memiliki keadaan internal yang diwakili oleh parameter, seperti tensor bobot.

    Instance Layer menentukan metode callAsFunction(_:) yang dapat dibedakan untuk memetakan input ke output.

    Pernyataan

    public protocol Layer : Module where Self.Input : Differentiable
  • Lapisan jaringan saraf tanpa parameter.

    TangentVector pada lapisan tanpa parameter selalu berupa EmptyTangentVector .

    Pernyataan

    public protocol ParameterlessLayer : Layer where Self.TangentVector == EmptyTangentVector
  • Tipe yang memiliki fungsi dasar tersedia.

    “Fungsi dasar” adalah fungsi yang dibangun dari pangkat, akar, eksponensial, logaritma, fungsi trigonometri (sin, cos, tan) dan inversnya, serta fungsi hiperbolik (sinh, cosh, tanh) dan inversnya.

    Kesesuaian dengan protokol ini berarti bahwa semua blok penyusun ini tersedia sebagai fungsi statis pada tipe tersebut.

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

    Pernyataan

    public protocol ElementaryFunctions
  • Tipe yang properti dan elemen tensor floating-point bersarangnya dapat dikonversi dari presisi penuh ke presisi tereduksi, dan sebaliknya.

  • Detail implementasi yang digunakan untuk mengatasi fakta bahwa Swift tidak dapat mengungkapkan batasan umum bahwa beberapa tipe harus berupa turunan dari Sampling .

    Pernyataan

    public protocol SamplingProtocol : Collection
  • Tipe yang dapat diinisialisasi dari instance numpy.ndarray yang direpresentasikan sebagai PythonObject .

    Pernyataan

    public protocol ConvertibleFromNumpyArray
  • Tipe yang kompatibel secara bitwise dengan satu atau lebih tipe skalar NumPy.

    Pernyataan

    public protocol NumpyScalarCompatible
  • Tipe yang nilainya dapat dikonversi ke PythonObject .

    Pernyataan

    public protocol PythonConvertible
  • Tipe yang dapat diinisialisasi dari PythonObject .

    Pernyataan

    public protocol ConvertibleFromPython
  • Tipe yang menyediakan data pseudo-acak deterministik yang dapat diunggulkan.

    SeedableRandomNumberGenerator dapat digunakan di mana saja di mana RandomNumberGenerator akan digunakan. Hal ini berguna ketika data pseudo-acak perlu direproduksi di seluruh proses.

    Sesuai dengan Protokol SeedableRandomNumberGenerator

    Untuk membuat tipe khusus sesuai dengan protokol SeedableRandomNumberGenerator , implementasikan init(seed: [UInt8]) penginisialisasi, serta persyaratan untuk RandomNumberGenerator . Nilai yang dikembalikan oleh next() harus membentuk urutan deterministik yang hanya bergantung pada seed yang disediakan saat inisialisasi.

    Pernyataan

    public protocol SeedableRandomNumberGenerator : RandomNumberGenerator
  • Pernyataan

    public protocol RandomDistribution
  • Sel lapisan berulang.

    Pernyataan

    public protocol RecurrentLayerCell: Layer
    where
      Input == RNNCellInput<TimeStepInput, State>,
      Output == RNNCellOutput<TimeStepOutput, State>
  • Tipe dengan nilai yang mendukung operasi biner terdiferensiasi.

    Digunakan oleh BidirectionalRecurrentLayer sebagai persyaratan umum untuk fungsi penggabungan.

    Pernyataan

    public protocol Mergeable : AdditiveArithmetic, Differentiable
  • Pernyataan

    public protocol TensorOperation
  • Pernyataan

    public protocol TFTensorOperation : TensorOperation
  • Protokol khusus untuk memanggil operasi tensorflow yang menggunakan array heterogen sebagai input.

    Pernyataan

    public protocol AnyTensor
  • Pernyataan

    public protocol TensorProtocol
  • Pernyataan

    public protocol DifferentiableTensorProtocol:
      TensorProtocol & Differentiable & EuclideanDifferentiable
    where Scalar: TensorFlowFloatingPoint
  • Protokol yang mewakili tipe yang dapat dipetakan ke Array<CTensorHandle> .

    Protokol ini ditentukan secara terpisah dari TensorGroup agar jumlah tensor dapat ditentukan pada waktu proses. Misalnya, [Tensor<Float>] mungkin memiliki jumlah elemen yang tidak diketahui pada waktu kompilasi.

    Protokol ini dapat diturunkan secara otomatis untuk struct yang semua properti tersimpannya sesuai dengan protokol TensorGroup . Ini tidak dapat diturunkan secara otomatis untuk struct yang semua propertinya sesuai dengan TensorArrayProtocol karena persyaratan konstruktor (yaitu, dalam kasus seperti itu, tidak mungkin mengetahui cara mengelompokkan count di antara properti yang disimpan).

    Pernyataan

    public protocol TensorArrayProtocol
  • Protokol yang mewakili tipe yang dapat dipetakan ke dan dari Array<CTensorHandle> .

    Saat TensorGroup digunakan sebagai argumen untuk operasi tensor, TensorGroup diteruskan sebagai daftar argumen yang elemennya merupakan bidang tensor dari jenis tersebut.

    Ketika TensorGroup dikembalikan sebagai hasil dari operasi tensor, TensorGroup diinisialisasi dengan kolom tensornya yang disetel ke hasil tensor operasi tensor.

    Pernyataan

    public protocol TensorGroup : TensorArrayProtocol
  • Tipe data yang didukung di x10.

    Pernyataan

    public protocol XLAScalarType