Yapılar

Aşağıdaki yapılar global olarak mevcuttur.

  • Aynı eleman tipine sahip iki dizinin birleştirilmesi.

    beyan

    public struct Concatenation<Base1: Sequence, Base2: Sequence>: Sequence
    where Base1.Element == Base2.Element
    extension Concatenation: Collection where Base1: Collection, Base2: Collection
    extension Concatenation: BidirectionalCollection
    where Base1: BidirectionalCollection, Base2: BidirectionalCollection
    extension Concatenation: RandomAccessCollection
    where Base1: RandomAccessCollection, Base2: RandomAccessCollection
  • Bir koleksiyonun döndürülmüş görünümü.

    beyan

    public struct RotatedCollection<Base> : Collection where Base : Collection
    extension RotatedCollection: BidirectionalCollection
    where Base: BidirectionalCollection
    extension RotatedCollection: RandomAccessCollection
    where Base: RandomAccessCollection
  • beyan

    public struct AnyDifferentiable : Differentiable
  • Türü silinmiş bir türev değeri.

    AnyDerivative türü, işlemlerini Differentiable ve AdditiveArithmetic ile uyumlu isteğe bağlı bir temel türev değerine ileterek temel değerin özelliklerini gizler.

    beyan

    @frozen
    public struct AnyDerivative : Differentiable & AdditiveArithmetic
  • Vektörlerin ve matrislerin potansiyel olarak daha yüksek boyutlara genelleştirilmesi olan çok boyutlu bir öğe dizisi.

    Genel parametre Scalar tensördeki skalerlerin türünü açıklar ( Int32 , Float vb. gibi).

    beyan

    @frozen
    public struct Tensor<Scalar> where Scalar : TensorFlowScalar
    extension Tensor: Collatable
    extension Tensor: CopyableToDevice
    extension Tensor: AnyTensor
    extension Tensor: ExpressibleByArrayLiteral
    extension Tensor: CustomStringConvertible
    extension Tensor: CustomPlaygroundDisplayConvertible
    extension Tensor: CustomReflectable
    extension Tensor: TensorProtocol
    extension Tensor: TensorGroup
    extension Tensor: ElementaryFunctions where Scalar: TensorFlowFloatingPoint
    -yer tutucu20
    extension Tensor: VectorProtocol where Scalar: TensorFlowFloatingPoint
    yer tutucu21 l10n
    extension Tensor: Mergeable where Scalar: TensorFlowFloatingPoint
    extension Tensor: Equatable where Scalar: Equatable
    extension Tensor: Codable where Scalar: Codable
    extension Tensor: AdditiveArithmetic where Scalar: Numeric
    extension Tensor: PointwiseMultiplicative where Scalar: Numeric
    extension Tensor: Differentiable & EuclideanDifferentiable where Scalar: TensorFlowFloatingPoint
    extension Tensor: DifferentiableTensorProtocol
    where Scalar: TensorFlowFloatingPoint
  • İki Tensors yayınlanmasının aktarımını gerçekleştiren bir geri çekme işlevi.

    beyan

    public struct BroadcastingPullback
  • Katmanlar gibi derin öğrenme API'leri tarafından kullanılan iş parçacığı yerel bağlamsal bilgileri depolayan bir bağlam.

    Geçerli iş parçacığı yerel bağlamını almak için Context.local kullanın.

    Örnekler:

    • BatchNorm gibi katmanların girdilere uygulandığında ortalama ve varyansı hesaplayabilmesi için mevcut öğrenme aşamasını eğitime ayarlayın.
      Context.local.learningPhase = .training
    
    • Mevcut öğrenme aşamasını çıkarım olarak ayarlayın, böylece Dropout gibi katmanlar girişlere uygulandığında birimleri düşürmez.
      Context.local.learningPhase = .inference
    

    beyan

    public struct Context
  • 1 boyutlu bir evrişim katmanı (örneğin bir zaman serisi üzerinde zamansal evrişim).

    Bu katman, çıktıların tensörünü üretmek için katman girişiyle evrilen bir evrişim filtresi oluşturur.

    beyan

    @frozen
    public struct Conv1D<Scalar> : Layer where Scalar : TensorFlowFloatingPoint
  • 2 boyutlu bir evrişim katmanı (örneğin, görüntüler üzerinde uzamsal evrişim).

    Bu katman, çıktıların tensörünü üretmek için katman girişiyle evrilen bir evrişim filtresi oluşturur.

    beyan

    @frozen
    public struct Conv2D<Scalar> : Layer where Scalar : TensorFlowFloatingPoint
  • Görüntüler üzerinde uzaysal/uzaysal-zamansal evrişim için 3 boyutlu bir evrişim katmanı.

    Bu katman, çıktıların tensörünü üretmek için katman girişiyle evrilen bir evrişim filtresi oluşturur.

    beyan

    @frozen
    public struct Conv3D<Scalar> : Layer where Scalar : TensorFlowFloatingPoint
  • Bir 1 boyutlu transpoze evrişim katmanı (örneğin, görüntüler üzerinde zamansal transpoze evrişim).

    Bu katman, çıktıların tensörünü üretmek için katman girişiyle transpoze-evrişimli bir evrişim filtresi oluşturur.

    beyan

    @frozen
    public struct TransposedConv1D<Scalar> : Layer where Scalar : TensorFlowFloatingPoint
  • Bir 2 boyutlu transpoze evrişim katmanı (örneğin, görüntüler üzerinde uzamsal transpoze evrişim).

    Bu katman, çıktıların tensörünü üretmek için katman girişiyle transpoze-evrişimli bir evrişim filtresi oluşturur.

    beyan

    @frozen
    public struct TransposedConv2D<Scalar> : Layer where Scalar : TensorFlowFloatingPoint
  • Bir 3 boyutlu transpoze evrişim katmanı (örneğin, görüntüler üzerinde uzamsal transpoze evrişim).

    Bu katman, çıktıların tensörünü üretmek için katman girişiyle transpoze-evrişimli bir evrişim filtresi oluşturur.

    beyan

    @frozen
    public struct TransposedConv3D<Scalar> : Layer where Scalar : TensorFlowFloatingPoint
  • 2 boyutlu derinlemesine evrişim katmanı.

    Bu katman, çıktıların tensörünü üretmek için katman girişiyle evrilen ayrılabilir evrişim filtreleri oluşturur.

    beyan

    @frozen
    public struct DepthwiseConv2D<Scalar> : Layer where Scalar : TensorFlowFloatingPoint
  • Zamansal boyuta sıfır dolgu eklemek için bir katman.

    beyan

    public struct ZeroPadding1D<Scalar> : ParameterlessLayer where Scalar : TensorFlowFloatingPoint
  • Uzamsal boyutlara sıfır dolgu eklemek için bir katman.

    beyan

    public struct ZeroPadding2D<Scalar> : ParameterlessLayer where Scalar : TensorFlowFloatingPoint
  • Uzamsal/uzaysal-zamansal boyutlara sıfır dolgu eklemek için bir katman.

    beyan

    public struct ZeroPadding3D<Scalar> : ParameterlessLayer where Scalar : TensorFlowFloatingPoint
  • 1 boyutlu ayrılabilir evrişim katmanı.

    Bu katman, kanallar üzerinde ayrı ayrı etki eden derinlemesine bir evrişim ve ardından kanalları karıştıran noktasal bir evrişim gerçekleştirir.

    beyan

    @frozen
    public struct SeparableConv1D<Scalar> : Layer where Scalar : TensorFlowFloatingPoint
  • 2 boyutlu Ayrılabilir evrişim katmanı.

    Bu katman, kanallar üzerinde ayrı ayrı etki eden derinlemesine bir evrişim ve ardından kanalları karıştıran noktasal bir evrişim gerçekleştirir.

    beyan

    @frozen
    public struct SeparableConv2D<Scalar> : Layer where Scalar : TensorFlowFloatingPoint
  • Düzleştirilmiş bir katman.

    Düzleştirme katmanı, uygulandığında toplu iş boyutunu etkilemeden girişi düzleştirir.

    beyan

    @frozen
    public struct Flatten<Scalar> : ParameterlessLayer where Scalar : TensorFlowFloatingPoint
  • Yeniden şekillendirilmiş bir katman.

    beyan

    @frozen
    public struct Reshape<Scalar> : ParameterlessLayer where Scalar : TensorFlowFloatingPoint
  • Özel bir türevlenebilir işlevi kapsayan bir katman.

    beyan

    public struct Function<Input, Output> : ParameterlessLayer where Input : Differentiable, Output : Differentiable
  • TensorFlowScalar ile uyumlu türlerden oluşturulabilen bir TensorFlow dinamik tür değeri.

    beyan

    public struct TensorDataType : Equatable
  • beyan

    @frozen
    public struct BFloat16
    extension BFloat16: TensorFlowScalar
    extension BFloat16: XLAScalarType
  • Potansiyel olarak büyük bir öğe kümesini temsil eder.

    Bir Dataset bir giriş hattını öğe tensörlerinin bir koleksiyonu olarak temsil etmek için kullanılabilir.

    beyan

    @available(*, deprecated, message: "Datasets will be removed in S4TF v0.10. Please use the new Batches API instead.")
    @frozen
    public struct Dataset<Element> where Element : TensorGroup
    extension Dataset: Sequence
  • Bir veri kümesinin öğeleri üzerinde yinelemeye izin veren tür.

    beyan

    @available(*, deprecated)
    @frozen
    public struct DatasetIterator<Element> where Element : TensorGroup
    extension DatasetIterator: IteratorProtocol
  • TensorGroup'a uygun 2 tipten oluşan bir demet'i temsil eden, TensorGroup uyan 2'li demet benzeri bir yapı.

    beyan

    @frozen
    public struct Zip2TensorGroup<T, U> : TensorGroup where T : TensorGroup, U : TensorGroup
  • Yoğun şekilde bağlı bir sinir ağı katmanı.

    Dense activation(matmul(input, weight) + bias) işlemini uygular; burada weight bir ağırlık matrisidir, bias bir önyargı vektörüdür ve activation , öğe bazında bir aktivasyon fonksiyonudur.

    Bu katman aynı zamanda 2 boyutlu önyargı matrislerine sahip 3 boyutlu ağırlık tensörlerini de destekler. Bu durumda her ikisinin de birinci boyutu, input birinci boyutuyla hizalanan toplu iş boyutu olarak ele alınır ve matmul(_:_:) işleminin toplu değişkeni kullanılır, böylece her öğe için farklı bir ağırlık ve önyargı kullanılır. giriş kümesinde.

    beyan

    @frozen
    public struct Dense<Scalar> : Layer where Scalar : TensorFlowFloatingPoint
  • Tensor tahsis edilebileceği bir cihaz.

    beyan

    public struct Device
    extension Device: Equatable
    extension Device: CustomStringConvertible
  • Bir bırakma katmanı.

    Bırakma, eğitim süresi boyunca her güncellemede giriş birimlerinin bir kısmının rastgele 0 ayarlanmasından oluşur; bu, aşırı uyumun önlenmesine yardımcı olur.

    beyan

    @frozen
    public struct Dropout<Scalar> : ParameterlessLayer where Scalar : TensorFlowFloatingPoint
  • GaussianNoise normal dağılımdan örneklenen gürültüyü ekler.

    Eklenen gürültünün ortalaması her zaman sıfırdır ancak yapılandırılabilir bir standart sapması vardır.

    beyan

    public struct GaussianNoise<Scalar> : ParameterlessLayer where Scalar : TensorFlowFloatingPoint
  • GaussianDropout girişi ortalama 1,0 olan normal dağılımdan örneklenen gürültüyle çarpar.

    Bu bir düzenleme katmanı olduğu için yalnızca eğitim süresi boyunca aktiftir. Çıkarım sırasında GaussianDropout girişten değiştirilmeden geçer.

    beyan

    public struct GaussianDropout<Scalar> : ParameterlessLayer where Scalar : TensorFlowFloatingPoint
  • Bir Alfa bırakma katmanı.

    Alfa Bırakma, bu bırakmadan sonra bile kendi kendini normalleştirme özelliğini sağlamak için girdilerin ortalama ve varyansını orijinal değerlerinde tutan bir Dropout . Alfa Düşüşü, etkinleştirmeleri rastgele negatif doygunluk değerine ayarlayarak Ölçeklendirilmiş Üstel Doğrusal Birimlere iyi uyum sağlar.

    Kaynak: Kendi Kendini Normalleştiren Sinir Ağları: https://arxiv.org/abs/1706.02515

    beyan

    @frozen
    public struct AlphaDropout<Scalar> : ParameterlessLayer where Scalar : TensorFlowFloatingPoint
  • Bir gömme katmanı.

    Embedding , endeksleri sabit bir sözlükten sabit boyutlu (yoğun) vektör temsillerine eşleyen etkili bir arama tablosudur, örneğin [[0], [3]] -> [[0.25, 0.1], [0.6, -0.2]] .

    beyan

    public struct Embedding<Scalar> : Module where Scalar : TensorFlowFloatingPoint
  • Parametresiz katmanlar için boş TangentVector temsil eden boş bir yapı.

  • Birinci ve ikinci moment çifti (yani ortalama ve varyans).

    Not

    Bu gereklidir çünkü demet türleri ayırt edilebilir değildir.

    beyan

    public struct Moments<Scalar> : Differentiable where Scalar : TensorFlowFloatingPoint
  • 2 boyutlu morfolojik genişleme katmanı

    Bu katman, sağlanan filtrelerle giriş tensörünün morfolojik genişlemesini döndürür

    beyan

    @frozen
    public struct Dilation2D<Scalar> : Layer where Scalar : TensorFlowFloatingPoint
  • 2 boyutlu morfolojik erozyon katmanı

    Bu katman, sağlanan filtrelerle giriş tensörünün morfolojik erozyonunu döndürür

    beyan

    @frozen
    public struct Erosion2D<Scalar> : Layer where Scalar : TensorFlowFloatingPoint
  • Bazı temel koleksiyonlardan belirli bir sırayla öğelerin tembel bir şekilde seçilmesi.

    beyan

    public struct Sampling<Base: Collection, Selection: Collection>
    where Selection.Element == Base.Index
    extension Sampling: SamplingProtocol
    extension Sampling: Collection
    extension Sampling: BidirectionalCollection
      where Selection: BidirectionalCollection
    extension Sampling: RandomAccessCollection
      where Selection: RandomAccessCollection
  • Bazı Base koleksiyonlarının üst üste binmeyen en uzun bitişik dilimlerinden oluşan, ilk öğesinden başlayan ve sabit bir maksimum uzunluğa sahip olan koleksiyon.

    Bu koleksiyonun öğeleri, sonuncusu hariç, Base.count % batchSize !=0 olmadığı sürece batchSize count sahiptir; bu durumda son grubun count base.count % batchSize.

    beyan

    public struct Slices<Base> where Base : Collection
    extension Slices: Collection
  • Bir toplu normalleştirme katmanı.

    Her grupta önceki katmanın aktivasyonlarını normalleştirir, yani ortalama aktivasyonu 0 yakın ve aktivasyon standart sapmasını 1 yakın tutacak bir dönüşüm uygular.

    Referans: Toplu Normalleştirme: Dahili Ortak Değişken Kaymasını Azaltarak Derin Ağ Eğitimini Hızlandırma .

    beyan

    @frozen
    public struct BatchNorm<Scalar> : Layer where Scalar : TensorFlowFloatingPoint
  • Mini bir girdi kümesi üzerinde katman normalizasyonunu uygulayan bir katman.

    Referans: Katman Normalleştirme .

    beyan

    @frozen
    public struct LayerNorm<Scalar> : Layer where Scalar : TensorFlowFloatingPoint
  • Mini bir girdi kümesi üzerinde grup normalizasyonunu uygulayan bir katman.

    Referans: Grup Normalleştirmesi .

    beyan

    @frozen
    public struct GroupNorm<Scalar> : Layer where Scalar : TensorFlowFloatingPoint
  • Mini bir girdi kümesi üzerinde örnek normalizasyonunu uygulayan bir katman.

    Referans: Örnek Normalleştirme: Hızlı Stilizasyon için Eksik Bileşen .

    beyan

    @frozen
    public struct InstanceNorm<Scalar> : Layer where Scalar : TensorFlowFloatingPoint
  • Optimize edici içindeki tek bir ağırlığın tek bir adımını belirtin.

    beyan

    public struct OptimizerWeightStepState
  • StateAccessor aracılığıyla erişilen küresel durum.

    beyan

    public struct OptimizerState
  • [String: Float] ancak öğelere sanki üyeymiş gibi erişilebilir.

    beyan

    @dynamicMemberLookup
    public struct HyperparameterDictionary
  • Tek bir parametre grubu üzerinde çalışan bir optimizer.

    beyan

    public struct ParameterGroupOptimizer
  • Optimize edicinin yerel değerleri için Int dizin değerinin etrafındaki tür açısından güvenli bir sarmalayıcı.

    beyan

    public struct LocalAccessor
  • Optimize edici genel değerleri için Int dizin değerinin etrafındaki tür açısından güvenli bir sarmalayıcı.

    beyan

    public struct GlobalAccessor
  • Optimize edici durum değerleri için Int dizin değerinin etrafındaki tür açısından güvenli bir sarmalayıcı.

    beyan

    public struct StateAccessor
  • Bir ParameterGroupOptimizer oluşturur. Bu, esas olarak modelde tek bir ağırlık düzeyinde kullanılır. ( [Bool] - ParameterGroupOptimizer) tarafından seçilen parametre gruplarından bir eşleme, son optimize ediciyi tanımlar.

    beyan

    public struct ParameterGroupOptimizerBuilder
  • Zamansal veriler için maksimum havuzlama katmanı.

    beyan

    @frozen
    public struct MaxPool1D<Scalar> : ParameterlessLayer where Scalar : TensorFlowFloatingPoint
  • Uzamsal veriler için maksimum havuzlama katmanı.

    beyan

    @frozen
    public struct MaxPool2D<Scalar> : ParameterlessLayer where Scalar : TensorFlowFloatingPoint
  • Uzamsal veya uzamsal-zamansal veriler için maksimum havuzlama katmanı.

    beyan

    @frozen
    public struct MaxPool3D<Scalar> : ParameterlessLayer where Scalar : TensorFlowFloatingPoint
  • Zamansal veriler için ortalama bir havuz katmanı.

    beyan

    @frozen
    public struct AvgPool1D<Scalar> : ParameterlessLayer where Scalar : TensorFlowFloatingPoint
  • Uzamsal veriler için ortalama bir havuz katmanı.

    beyan

    @frozen
    public struct AvgPool2D<Scalar> : ParameterlessLayer where Scalar : TensorFlowFloatingPoint
  • Uzamsal veya uzamsal-zamansal veriler için ortalama bir havuzlama katmanı.

    beyan

    @frozen
    public struct AvgPool3D<Scalar> : ParameterlessLayer where Scalar : TensorFlowFloatingPoint
  • Zamansal veriler için küresel ortalama havuzlama katmanı.

    beyan

    @frozen
    public struct GlobalAvgPool1D<Scalar> : ParameterlessLayer where Scalar : TensorFlowFloatingPoint
  • Uzamsal veriler için küresel ortalama havuzlama katmanı.

    beyan

    @frozen
    public struct GlobalAvgPool2D<Scalar> : ParameterlessLayer where Scalar : TensorFlowFloatingPoint
  • Uzamsal ve uzamsal-zamansal veriler için küresel ortalama havuzlama katmanı.

    beyan

    @frozen
    public struct GlobalAvgPool3D<Scalar> : ParameterlessLayer where Scalar : TensorFlowFloatingPoint
  • Zamansal veriler için küresel maksimum havuzlama katmanı.

    beyan

    @frozen
    public struct GlobalMaxPool1D<Scalar> : ParameterlessLayer where Scalar : TensorFlowFloatingPoint
  • Uzamsal veriler için küresel maksimum havuzlama katmanı.

    beyan

    @frozen
    public struct GlobalMaxPool2D<Scalar> : ParameterlessLayer where Scalar : TensorFlowFloatingPoint
  • Uzamsal ve uzamsal-zamansal veriler için küresel maksimum havuzlama katmanı.

    beyan

    @frozen
    public struct GlobalMaxPool3D<Scalar> : ParameterlessLayer where Scalar : TensorFlowFloatingPoint
  • Uzamsal veriler için kesirli maksimum havuzlama katmanı. Not: FractionalMaxPool bir XLA uygulaması yoktur ve dolayısıyla performansla ilgili etkileri olabilir.

    beyan

    @frozen
    public struct FractionalMaxPool2D<Scalar> : ParameterlessLayer where Scalar : TensorFlowFloatingPoint
  • PythonObject Python'da bir nesneyi temsil eder ve dinamik üye aramayı destekler. object.foo gibi herhangi bir üye erişimi, bu nesnede belirtilen ada sahip bir üye için dinamik olarak Python çalışma zamanını isteyecektir.

    PythonObject tüm Python işlev çağrılarına ve üye referanslarına iletilir ve bunlardan döndürülür. Standart Python aritmetiğini ve karşılaştırma operatörlerini destekler.

    Dahili olarak PythonObject , Python C API'si PyObject referans sayılan bir işaretçi olarak uygulanır.

    beyan

    @dynamicCallable
    @dynamicMemberLookup
    public struct PythonObject
    extension PythonObject : CustomStringConvertible
    extension PythonObject : CustomPlaygroundDisplayConvertible
    extension PythonObject : CustomReflectable
    extension PythonObject : PythonConvertible, ConvertibleFromPython
    extension PythonObject : SignedNumeric
    extension PythonObject : Strideable
    extension PythonObject : Equatable, Comparable
    extension PythonObject : Hashable
    extension PythonObject : MutableCollection
    extension PythonObject : Sequence
    extension PythonObject : ExpressibleByBooleanLiteral, ExpressibleByIntegerLiteral,
    ExpressibleByFloatLiteral, ExpressibleByStringLiteral
    extension PythonObject : ExpressibleByArrayLiteral, ExpressibleByDictionaryLiteral
  • Yöntem çağrılarının atılmasını sağlayan bir PythonObject sarmalayıcısı. Python fonksiyonlarının ürettiği istisnalar Swift hataları olarak yansıtılır ve atılır.

    Not

    Çağrı sözdizimi sezgisel olmadığından ThrowingPythonObject @dynamicCallable özniteliğine sahip olmaması kasıtlıdır: x.throwing(arg1, arg2, ...) . Yöntemler daha fazla tartışmaya/tasarıma kadar dynamicallyCall çağrılmaya devam edecektir.

    beyan

    public struct ThrowingPythonObject
  • Üye erişimlerine olanak tanıyan bir PythonObject sarmalayıcısı. Üye erişim işlemleri Optional bir sonuç döndürür. Üye erişimi başarısız olduğunda nil döndürülür.

    beyan

    @dynamicMemberLookup
    public struct CheckingPythonObject
  • Python için bir arayüz.

    PythonInterface Python ile etkileşime izin verir. Modülleri içe aktarmak ve Python yerleşik türlerine ve işlevlerine dinamik olarak erişmek için kullanılabilir.

    Not

    PythonInterface doğrudan başlatılması amaçlanmamıştır. Bunun yerine lütfen PythonInterface Python adlı genel örneğini kullanın.

    beyan

    @dynamicMemberLookup
    public struct PythonInterface
  • beyan

    public struct PythonLibrary
  • Türü silinmiş bir rastgele sayı üreteci.

    AnyRandomNumberGenerator türü, rasgele sayı oluşturma işlemlerini temeldeki bir rasgele sayı oluşturucuya ileterek kendine özgü temel türünü gizler.

    beyan

    public struct AnyRandomNumberGenerator : RandomNumberGenerator
  • ARC4 kullanan bir SeedableRandomNumberGenerator uygulaması.

    ARC4, sözde rastgele bayt akışı üreten bir akış şifresidir. Bu PRNG, tohumu anahtarı olarak kullanır.

    ARC4, Schneier, B., "Uygulamalı Şifreleme: Protokoller, Algoritmalar ve C'deki Kaynak Kodu", 2. Baskı, 1996'da açıklanmaktadır.

    Tek bir oluşturucu iş parçacığı açısından güvenli değildir, ancak farklı oluşturucular durumu paylaşmaz. Üretilen rastgele veriler yüksek kalitededir ancak kriptografik uygulamalar için uygun değildir.

    beyan

    @frozen
    public struct ARC4RandomNumberGenerator : SeedableRandomNumberGenerator
  • Threefry kullanan bir SeedableRandomNumberGenerator uygulaması. Somon ve ark. SC 2011. Paralel rastgele sayılar: 1, 2, 3 kadar kolay. http://www.thesalmons.org/john/random123/papers/random123sc11.pdf

    Bu yapı 20 turluk Threefry2x32 PRNG'yi uygular. 64 bitlik bir değerle ekilmesi gerekir.

    Tek bir oluşturucu iş parçacığı açısından güvenli değildir, ancak farklı oluşturucular durumu paylaşmaz. Üretilen rastgele veriler yüksek kalitededir ancak kriptografik uygulamalar için uygun değildir.

    beyan

    public struct ThreefryRandomNumberGenerator : SeedableRandomNumberGenerator
  • Philox kullanan bir SeedableRandomNumberGenerator uygulaması. Somon ve ark. SC 2011. Paralel rastgele sayılar: 1, 2, 3 kadar kolay. http://www.thesalmons.org/john/random123/papers/random123sc11.pdf

    Bu yapı 10 turlu Philox4x32 PRNG'yi uygular. 64 bitlik bir değerle ekilmesi gerekir.

    Tek bir oluşturucu iş parçacığı açısından güvenli değildir, ancak farklı oluşturucular durumu paylaşmaz. Üretilen rastgele veriler yüksek kalitededir ancak kriptografik uygulamalar için uygun değildir.

    beyan

    public struct PhiloxRandomNumberGenerator : SeedableRandomNumberGenerator
  • beyan

    @frozen
    public struct UniformIntegerDistribution<T> : RandomDistribution where T : FixedWidthInteger
  • beyan

    @frozen
    public struct UniformFloatingPointDistribution<T: BinaryFloatingPoint>: RandomDistribution
    where T.RawSignificand: FixedWidthInteger
  • beyan

    @frozen
    public struct NormalDistribution<T: BinaryFloatingPoint>: RandomDistribution
    where T.RawSignificand: FixedWidthInteger
  • beyan

    @frozen
    public struct BetaDistribution : RandomDistribution
  • Tekrarlayan bir sinir ağına giriş.

    beyan

    public struct RNNCellInput<Input, State> : Differentiable where Input : Differentiable, State : Differentiable
    extension RNNCellInput: EuclideanDifferentiable
    where Input: EuclideanDifferentiable, State: EuclideanDifferentiable
  • Tekrarlayan bir sinir ağına bir çıktı.

    beyan

    public struct RNNCellOutput<Output, State> : Differentiable where Output : Differentiable, State : Differentiable
    extension RNNCellOutput: EuclideanDifferentiable
    where Output: EuclideanDifferentiable, State: EuclideanDifferentiable
  • Temel bir RNN hücresi.

    beyan

    public struct BasicRNNCell<Scalar> : RecurrentLayerCell where Scalar : TensorFlowFloatingPoint
  • Bir LSTM hücresi.

    beyan

    public struct LSTMCell<Scalar> : RecurrentLayerCell where Scalar : TensorFlowFloatingPoint
  • Bir GRU hücresi.

    beyan

    public struct GRUCell<Scalar> : RecurrentLayerCell where Scalar : TensorFlowFloatingPoint
  • beyan

    public struct RecurrentLayer<Cell> : Layer where Cell : RecurrentLayerCell
    extension RecurrentLayer: Equatable where Cell: Equatable
    extension RecurrentLayer: AdditiveArithmetic where Cell: AdditiveArithmetic
  • beyan

    public struct BidirectionalRecurrentLayer<Cell: RecurrentLayerCell>: Layer
    where Cell.TimeStepOutput: Mergeable
  • İki veya daha fazla katmanı sırayla oluşturan katman.

    Örnekler:

    • MNIST için basit bir 2 katmanlı algılayıcı modeli oluşturun:
    let inputSize = 28 * 28
    let hiddenSize = 300
    var classifier = Sequential {
         Dense<Float>(inputSize: inputSize, outputSize: hiddenSize, activation: relu)
         Dense<Float>(inputSize: hiddenSize, outputSize: 3, activation: identity)
     }
    
    • MNIST için bir otomatik kodlayıcı oluşturun:
    var autoencoder = Sequential {
        // The encoder.
        Dense<Float>(inputSize: 28 * 28, outputSize: 128, activation: relu)
        Dense<Float>(inputSize: 128, outputSize: 64, activation: relu)
        Dense<Float>(inputSize: 64, outputSize: 12, activation: relu)
        Dense<Float>(inputSize: 12, outputSize: 3, activation: relu)
        // The decoder.
        Dense<Float>(inputSize: 3, outputSize: 12, activation: relu)
        Dense<Float>(inputSize: 12, outputSize: 64, activation: relu)
        Dense<Float>(inputSize: 64, outputSize: 128, activation: relu)
        Dense<Float>(inputSize: 128, outputSize: imageHeight * imageWidth, activation: tanh)
    }
    

    beyan

    public struct Sequential<Layer1: Module, Layer2: Layer>: Module
        where Layer1.Output == Layer2.Input,
              Layer1.TangentVector.VectorSpaceScalar == Layer2.TangentVector.VectorSpaceScalar
    extension Sequential: Layer where Layer1: Layer
  • beyan

    @_functionBuilder
    public struct LayerBuilder
  • ShapedArray çok boyutlu bir dizidir. [Int] tipinde olan ve dizi boyutlarını tanımlayan bir şekle sahiptir ve depolama olarak dahili olarak bir TensorBuffer kullanır.

    beyan

    @frozen
    public struct ShapedArray<Scalar> : _ShapedArrayProtocol
    extension ShapedArray: RandomAccessCollection, MutableCollection
    extension ShapedArray: CustomPlaygroundDisplayConvertible
    extension ShapedArray: CustomStringConvertible
    extension ShapedArray: CustomReflectable
    extension ShapedArray: ExpressibleByArrayLiteral where Scalar: TensorFlowScalar
    extension ShapedArray: Equatable where Scalar: Equatable
    extension ShapedArray: Hashable where Scalar: Hashable
    extension ShapedArray: Codable where Scalar: Codable
  • ShapedArray veya ShapedArraySlice örneğinin bitişik bir dilimi.

    ShapedArraySlice ShapedArray örneklerinin bitişik dilimleri üzerinde hızlı, verimli işlemlere olanak tanır. ShapedArraySlice örneklerinin kendi depolama alanları yoktur. Bunun yerine, temel ShapedArray depolarına ilişkin bir görünüm sağlarlar. ShapedArraySlice iki farklı dilim türünü temsil edebilir: öğe dizileri ve alt diziler.

    Öğe dizileri bir ShapedArray alt boyutlu öğeleridir: sıralamaları tabanlarınınkinden bir eksiktir. Öğe dizisi dilimleri, ShapedArray örneğinin tekil bir Int32 dizini ile dizine eklenmesiyle elde edilir.

    Örneğin:

        var matrix = ShapedArray(shape: [2, 2], scalars: [0, 1, 2, 3])
        // `matrix` represents [[0, 1], [2, 3]].
    
        let element = matrix[0]
        // `element` is a `ShapedArraySlice` with shape [2]. It is an element
        // array, specifically the first element in `matrix`: [0, 1].
    
        matrix[1] = ShapedArraySlice(shape: [2], scalars: [4, 8])
        // The second element in `matrix` has been mutated.
        // `matrix` now represents [[0, 1, 4, 8]].
    

    Alt diziler, ShapedArray içindeki öğelerin bitişik aralığıdır. Bir alt dizinin sıralaması tabanınınkiyle aynıdır ancak öncü boyutu dilim aralığının sayısıdır. Alt dizi dilimleri, bir ShapedArray öğesinin bir dizi öğeyi temsil eden (ön boyutta) Range<Int32> ile dizine eklenmesiyle elde edilir. Bir aralıkla dahili olarak indekslenen prefix(:) ve suffix(:) gibi yöntemler de alt dizi üretir.

    Örneğin:

        let zeros = ShapedArray(repeating: 0, shape: [3, 2])
        var matrix = ShapedArray(shape: [3, 2], scalars: Array(0..<6))
        // `zeros` represents [[0, 0], [0, 0], [0, 0]].
        // `matrix` represents [[0, 1], [2, 3], [4, 5]].
    
        let subarray = matrix.prefix(2)
        // `subarray` is a `ShapedArraySlice` with shape [2, 2]. It is a slice
        // of the first 2 elements in `matrix` and represents [[0, 1], [2, 3]].
    
        matrix[0..<2] = zeros.prefix(2)
        // The first 2 elements in `matrix` have been mutated.
        // `matrix` now represents [[0, 0], [0, 0], [4, 5]].
    

    beyan

    @frozen
    public struct ShapedArraySlice<Scalar> : _ShapedArrayProtocol
    extension ShapedArraySlice: RandomAccessCollection, MutableCollection
    extension ShapedArraySlice: CustomStringConvertible
    extension ShapedArraySlice: CustomPlaygroundDisplayConvertible
    extension ShapedArraySlice: CustomReflectable
    extension ShapedArraySlice: ExpressibleByArrayLiteral where Scalar: TensorFlowScalar
    extension ShapedArraySlice: Equatable where Scalar: Equatable
    extension ShapedArraySlice: Hashable where Scalar: Hashable
    extension ShapedArraySlice: Codable where Scalar: Codable
  • StringTensor , elemanları String olan çok boyutlu bir dizidir.

    beyan

    @frozen
    public struct StringTensor
    extension StringTensor: TensorGroup
  • TensorHandle , operasyonlar tarafından kullanılan türdür. Derleyicinin dahili bileşenlerinin, bir tensör programına çıkarıldığında parametrelerin veri türlerini belirlemek için kullanabileceği bir Scalar türü içerir.

    beyan

    public struct TensorHandle<Scalar> where Scalar : _TensorFlowDataTypeCompatible
    extension TensorHandle: TensorGroup
  • beyan

    public struct ResourceHandle
    extension ResourceHandle: TensorGroup
  • beyan

    public struct VariantHandle
    extension VariantHandle: TensorGroup
  • Bir tensörün şeklini temsil eden bir yapı.

    TensorShape , şekil boyutlarını temsil eden bir dizi tamsayıyı çevreleyen ince bir sarmalayıcıdır. Tüm tensör türleri, şekillerini temsil etmek için TensorShape kullanır.

    beyan

    @frozen
    public struct TensorShape : ExpressibleByArrayLiteral
    extension TensorShape: Collection, MutableCollection
    extension TensorShape: RandomAccessCollection
    extension TensorShape: RangeReplaceableCollection
    extension TensorShape: Equatable
    extension TensorShape: Codable
    extension TensorShape: CustomStringConvertible
  • TensorVisitorPlan [WritableKeyPath<Base, Tensor<Float>] değerine yakındır ancak daha verimlidir. Bu, degradeleri, mevcut ağırlıkları ve yardımcı olarak depolanan ağırlıkları bulmak için kullanılabilecek bir dizini haritalamak isteyen genel optimizasyon araçları yazmak için kullanışlıdır. Bu biraz daha verimlidir (~2x), ancak daha iyi olabilir çünkü her bir KeyPath'i izlemek için düz bir listeyle gereken O(derinlik_of_ağaç) işini yapmak zorunda kalmamak için biraz daha yüksek genel giderlerden (ekstra işaretçi referansı) ödün verir.

    beyan

    public struct TensorVisitorPlan<Base>
  • 1 boyutlu girişler için bir üst örnekleme katmanı.

    beyan

    @frozen
    public struct UpSampling1D<Scalar> : ParameterlessLayer where Scalar : TensorFlowFloatingPoint
  • 2 boyutlu girişler için bir üst örnekleme katmanı.

    beyan

    @frozen
    public struct UpSampling2D<Scalar> : ParameterlessLayer where Scalar : TensorFlowFloatingPoint
  • 3 boyutlu girişler için bir üst örnekleme katmanı.

    beyan

    @frozen
    public struct UpSampling3D<Scalar> : ParameterlessLayer where Scalar : TensorFlowFloatingPoint
  • Doğru tahmin sayaçlarını ve kayıp toplamlarını toplar.

    beyan

    public struct HostStatistics