Aşağıdaki protokoller global olarak mevcuttur.
MutableCollection
algoritmaları için özelleştirme noktaları sağlar.Standart kütüphaneye dahil edilirse bu gereksinimler yalnızca
MutableCollection
bir parçası olacaktır. Bu arada, bu özelleştirme noktalarınınMutableCollectionAlgorithms
üzerinde tanımlanan diğer algoritmalardan kullanılmasını sağlamak için bir koleksiyonunMutableCollectionAlgorithms
uygunluğunu beyan edebilirsiniz.beyan
public protocol MutableCollectionAlgorithms: MutableCollection where SubSequence: MutableCollectionAlgorithms
beyan
public protocol TensorFlowScalar : _TensorFlowDataTypeCompatible
beyan
public protocol TensorRangeExpression
Öğeleri aynı türdeki bazı yüksek dereceli öğelerde toplanabilen türler (örnek: tensörler, tensör dizisi)
beyan
public protocol Collatable
İç içe geçmiş özellikleri ve öğeleri
Device
öğesine kopyalanabilen bir tür.beyan
public protocol CopyableToDevice : _CopyableToDevice
Değerleri özelliklere veya öğelere özel anahtar yollar sağlayan bir tür.
beyan
public protocol KeyPathIterable : _KeyPathIterableBase
TensorFlow ile uyumlu bir skaler veri türü.
TensorFlowScalar
uygun türler,Tensor
Scalar
ilişkili türü olarak kullanılabilir.TensorFlow'da tensör indeksleri olarak kullanılabilecek tam sayı türlerini temsil eden bir tam sayı veri türü.
beyan
public protocol TensorFlowIndex : BinaryInteger, TensorFlowScalar
Differentiable
ile uyumlu ve TensorFlow ile uyumlu bir kayan nokta veri türü.Not
Tensor
,Scalar
ilişkili türTensorFlowFloatingPoint
ile uyumlu olduğunda,Differentiable
ile koşullu olarak uyumludur.beyan
public protocol TensorFlowFloatingPoint: TensorFlowScalar & BinaryFloatingPoint & Differentiable & ElementaryFunctions where Self.RawSignificand: FixedWidthInteger, Self == Self.TangentVector
Teğet uzayları sonlu boyutlu olan türevlenebilir bir manifoldu matematiksel olarak temsil eden bir tür.
beyan
public protocol Differentiable
Noktasal çarpmayı destekleyen değerlere sahip bir tür.
beyan
public protocol PointwiseMultiplicative : AdditiveArithmetic
Sıralanmamış bir vektör uzayını temsil eden bir tür. Bu türdeki değerler, bu vektör uzayındaki öğelerdir ve ya şekli yoktur ya da statik bir şekle sahiptir.
beyan
public protocol VectorProtocol : AdditiveArithmetic
Öklid uzayında türevlenebilen bir tür. Tür, bir vektör uzayını temsil edebilir veya bir vektör uzayından ve bazı başka türevlenemeyen bileşenlerden oluşabilir.
Matematiksel olarak bu, diferansiyellenebilir bir vektör uzayı ve bazı keyfi manifoldlardan oluşan bir çarpım manifoldunu temsil eder; burada tüm çarpım manifoldunun teğet demeti, vektör uzayı bileşenine eşittir.
Bu soyutlama, hem türevlenebilir vektör özelliklerini hem de türevi olmayan diğer depolanmış özellikleri içeren ortak türevlenebilir veri yapılarını temsil etmek için kullanışlıdır;
struct Perceptron: @memberwise EuclideanDifferentiable { var weight: SIMD16<Float> var bias: Float @noDerivative var useBias: Bool }
Not
Yalnızca vektör uzayı bileşenine göre türevlenebilirse veTangentVector
vektör uzayı bileşenine eşitse, bir türüEuclideanDifferentiable
uygun hale getirin.beyan
public protocol EuclideanDifferentiable : Differentiable
beyan
public protocol Module: EuclideanDifferentiable, KeyPathIterable where TangentVector: VectorProtocol & ElementaryFunctions & PointwiseMultiplicative & KeyPathIterable
Bir sinir ağı katmanı.
Layer
uygun türler, girdileri çıktılarla eşleyen işlevleri temsil eder. Ağırlık tensörleri gibi parametrelerle temsil edilen bir iç duruma sahip olabilirler.Layer
örnekleri, girişleri çıkışlarla eşlemek için ayırt edilebilir bircallAsFunction(_:)
yöntemini tanımlar.beyan
public protocol Layer : Module where Self.Input : Differentiable
Parametresiz bir sinir ağı katmanı.
Parametresiz katmanların
TangentVector
her zamanEmptyTangentVector
.beyan
public protocol ParameterlessLayer : Layer where Self.TangentVector == EmptyTangentVector
Temel işlevlere sahip bir tür.
Bir "temel fonksiyon" kuvvetler, kökler, üsteller, logaritmalar, trigonometrik fonksiyonlar (sin, cos, tan) ve bunların tersleri ile hiperbolik fonksiyonlar (sinh, cosh, tanh) ve bunların terslerinden oluşturulan bir fonksiyondur.
Bu protokole uygunluk, tüm bu yapı taşlarının türde statik işlevler olarak mevcut olduğu anlamına gelir.
let x: Float = 1 let y = Float.sin(x) // 0.84147096
beyan
public protocol ElementaryFunctions
Yuvalanmış kayan nokta tensör özellikleri ve öğeleri, tam hassasiyetten azaltılmış hassasiyete (veya tam tersi) dönüştürülebilen bir tür.
Swift'in bazı türlerin
Sampling
örneği olması gerektiğine dair genel bir kısıtlamayı ifade edemediği gerçeğini çözmek için kullanılan bir uygulama ayrıntısı.beyan
public protocol SamplingProtocol : Collection
PythonObject
olarak temsil edilennumpy.ndarray
örneğinden başlatılabilen bir tür.beyan
public protocol ConvertibleFromNumpyArray
Bir veya daha fazla NumPy skaler türüyle bit düzeyinde uyumlu olan bir tür.
beyan
public protocol NumpyScalarCompatible
Değerleri
PythonObject
dönüştürülebilen bir tür.beyan
public protocol PythonConvertible
PythonObject
öğesinden başlatılabilen bir tür.beyan
public protocol ConvertibleFromPython
Tohumlanabilir deterministik sözde rastgele veriler sağlayan bir tür.
SeedableRandomNumberGenerator, RandomNumberGenerator'ın kullanılacağı her yerde kullanılabilir. Sözde rastgele verilerin çalıştırmalar arasında yeniden üretilebilir olması gerektiğinde kullanışlıdır.
SeedableRandomNumberGenerator Protokolüne Uyumluluk
Özel bir türün
SeedableRandomNumberGenerator
protokolüne uygun olmasını sağlamak içininit(seed: [UInt8])
başlatıcısını veRandomNumberGenerator
gereksinimlerini uygulayın.next()
tarafından döndürülen değerler, yalnızca başlatma sırasında sağlanan tohuma bağlı olan deterministik bir dizi oluşturmalıdır.beyan
public protocol SeedableRandomNumberGenerator : RandomNumberGenerator
beyan
public protocol RandomDistribution
Yinelenen bir katman hücresi.
beyan
public protocol RecurrentLayerCell: Layer where Input == RNNCellInput<TimeStepInput, State>, Output == RNNCellOutput<TimeStepOutput, State>
Türevlenebilir ikili işlemleri destekleyen değerlere sahip bir tür.
BidirectionalRecurrentLayer
tarafından birleştirme işlevleri için genel bir gereksinim olarak kullanılır.beyan
public protocol Mergeable : AdditiveArithmetic, Differentiable
beyan
public protocol TensorOperation
beyan
public protocol TFTensorOperation : TensorOperation
Giriş olarak heterojen dizileri alan tensorflow işlemlerini çağırmak için özel protokol.
beyan
public protocol AnyTensor
beyan
public protocol TensorProtocol
beyan
public protocol DifferentiableTensorProtocol: TensorProtocol & Differentiable & EuclideanDifferentiable where Scalar: TensorFlowFloatingPoint
Array<CTensorHandle>
ile eşlenebilecek türleri temsil eden bir protokol.Bu protokol, tensör sayısının çalışma zamanında belirlenebilmesi için
TensorGroup
ayrı olarak tanımlanır. Örneğin,[Tensor<Float>]
derleme zamanında bilinmeyen sayıda öğeye sahip olabilir.Bu protokol, saklanan özelliklerinin tümü
TensorGroup
protokolüne uygun olan yapılar için otomatik olarak türetilebilir. Yapıcı gerekliliği nedeniyle, tüm özellikleriTensorArrayProtocol
uygun olan yapılar için otomatik olarak türetilemez (yani bu gibi durumlarda, saklanan özellikler arasındacount
nasıl bölüneceğini bilmek imkansız olacaktır).beyan
public protocol TensorArrayProtocol
Array<CTensorHandle>
ile eşlenebilecek türleri temsil eden bir protokol.Bir
TensorGroup
bir tensör işlemine argüman olarak kullanıldığında, elemanları türün tensör alanları olan bir argüman listesi olarak iletilir.Bir
TensorGroup
bir tensör işleminin sonucu olarak döndürüldüğünde, tensör alanları tensör işleminin tensör sonuçlarına ayarlanmış olarak başlatılır.beyan
public protocol TensorGroup : TensorArrayProtocol
x10'da desteklenen bir veri türü.
beyan
public protocol XLAScalarType