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 keMutableCollectionAlgorithms
agar titik penyesuaian ini dapat digunakan dari algoritme lain yang ditentukan padaMutableCollectionAlgorithms
.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 tipeTensor
yang terkait denganScalar
.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 denganDifferentiable
ketika tipe terkaitScalar
sesuai denganTensorFlowFloatingPoint
.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 denganEuclideanDifferentiable
jika tipe tersebut hanya dapat terdiferensiasi terhadap komponen ruang vektornya dan ketikaTangentVector
-nya sama dengan komponen ruang vektornya.Pernyataan
public protocol EuclideanDifferentiable : Differentiable
Pernyataan
public protocol Module: EuclideanDifferentiable, KeyPathIterable where TangentVector: VectorProtocol & ElementaryFunctions & PointwiseMultiplicative & KeyPathIterable
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 metodecallAsFunction(_:)
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 berupaEmptyTangentVector
.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 sebagaiPythonObject
.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
, implementasikaninit(seed: [UInt8])
penginisialisasi, serta persyaratan untukRandomNumberGenerator
. Nilai yang dikembalikan olehnext()
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 denganTensorArrayProtocol
karena persyaratan konstruktor (yaitu, dalam kasus seperti itu, tidak mungkin mengetahui cara mengelompokkancount
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