Struktur

Struktur berikut tersedia secara global.

  • Rangkaian dua barisan dengan tipe elemen yang sama.

    Pernyataan

    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
  • Tampilan diputar ke koleksi.

    Pernyataan

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

    public struct AnyDifferentiable : Differentiable
  • Nilai turunan yang terhapus tipe.

    Tipe AnyDerivative meneruskan operasinya ke nilai turunan dasar sembarang yang sesuai dengan Differentiable dan AdditiveArithmetic , sehingga menyembunyikan spesifikasi nilai dasar.

    Pernyataan

    @frozen
    public struct AnyDerivative : Differentiable & AdditiveArithmetic
  • Array elemen multidimensi yang merupakan generalisasi vektor dan matriks ke dimensi yang berpotensi lebih tinggi.

    Parameter generik Scalar menjelaskan jenis skalar di tensor (seperti Int32 , Float , dll).

    Pernyataan

    @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
    extension Tensor: VectorProtocol where Scalar: TensorFlowFloatingPoint
    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
  • Fungsi pullback yang melakukan transpose penyiaran dua Tensors .

    Pernyataan

    public struct BroadcastingPullback
  • Konteks yang menyimpan informasi kontekstual thread-lokal yang digunakan oleh API pembelajaran mendalam seperti lapisan.

    Gunakan Context.local untuk mengambil konteks thread-lokal saat ini.

    Contoh:

    • Atur fase pembelajaran saat ini ke pelatihan sehingga lapisan seperti BatchNorm akan menghitung mean dan varians saat diterapkan pada input.
      Context.local.learningPhase = .training
    
    • Atur fase pembelajaran saat ini ke inferensi sehingga lapisan seperti Dropout tidak akan mengeluarkan unit saat diterapkan ke input.
      Context.local.learningPhase = .inference
    

    Pernyataan

    public struct Context
  • Lapisan konvolusi 1-D (misalnya konvolusi temporal dalam rangkaian waktu).

    Lapisan ini membuat filter konvolusi yang dikonvolusi dengan masukan lapisan untuk menghasilkan tensor keluaran.

    Pernyataan

    @frozen
    public struct Conv1D<Scalar> : Layer where Scalar : TensorFlowFloatingPoint
  • Lapisan konvolusi 2-D (misalnya konvolusi spasial pada gambar).

    Lapisan ini membuat filter konvolusi yang dikonvolusi dengan masukan lapisan untuk menghasilkan tensor keluaran.

    Pernyataan

    @frozen
    public struct Conv2D<Scalar> : Layer where Scalar : TensorFlowFloatingPoint
  • Lapisan konvolusi 3-D untuk konvolusi spasial/spatio-temporal pada gambar.

    Lapisan ini membuat filter konvolusi yang dikonvolusi dengan masukan lapisan untuk menghasilkan tensor keluaran.

    Pernyataan

    @frozen
    public struct Conv3D<Scalar> : Layer where Scalar : TensorFlowFloatingPoint
  • Lapisan konvolusi transposisi 1-D (misalnya konvolusi transposisi temporal pada gambar).

    Lapisan ini membuat filter konvolusi yang dikonvolusi secara transpos dengan masukan lapisan untuk menghasilkan tensor keluaran.

    Pernyataan

    @frozen
    public struct TransposedConv1D<Scalar> : Layer where Scalar : TensorFlowFloatingPoint
  • Lapisan konvolusi transposisi 2-D (misalnya konvolusi transposisi spasial pada gambar).

    Lapisan ini membuat filter konvolusi yang dikonvolusi secara transpos dengan masukan lapisan untuk menghasilkan tensor keluaran.

    Pernyataan

    @frozen
    public struct TransposedConv2D<Scalar> : Layer where Scalar : TensorFlowFloatingPoint
  • Lapisan konvolusi transposisi 3-D (misalnya konvolusi transposisi spasial pada gambar).

    Lapisan ini membuat filter konvolusi yang dikonvolusi secara transpos dengan masukan lapisan untuk menghasilkan tensor keluaran.

    Pernyataan

    @frozen
    public struct TransposedConv3D<Scalar> : Layer where Scalar : TensorFlowFloatingPoint
  • Lapisan konvolusi mendalam 2-D.

    Lapisan ini membuat filter konvolusi terpisah yang dikonvolusi dengan masukan lapisan untuk menghasilkan tensor keluaran.

    Pernyataan

    @frozen
    public struct DepthwiseConv2D<Scalar> : Layer where Scalar : TensorFlowFloatingPoint
  • Lapisan untuk menambahkan zero-padding dalam dimensi temporal.

    Pernyataan

    public struct ZeroPadding1D<Scalar> : ParameterlessLayer where Scalar : TensorFlowFloatingPoint
  • Lapisan untuk menambahkan zero-padding dalam dimensi spasial.

    Pernyataan

    public struct ZeroPadding2D<Scalar> : ParameterlessLayer where Scalar : TensorFlowFloatingPoint
  • Lapisan untuk menambahkan zero-padding pada dimensi spasial/spatio-temporal.

    Pernyataan

    public struct ZeroPadding3D<Scalar> : ParameterlessLayer where Scalar : TensorFlowFloatingPoint
  • Lapisan konvolusi 1-D yang dapat dipisahkan.

    Lapisan ini melakukan konvolusi mendalam yang bekerja secara terpisah pada saluran diikuti dengan konvolusi titik yang mencampurkan saluran.

    Pernyataan

    @frozen
    public struct SeparableConv1D<Scalar> : Layer where Scalar : TensorFlowFloatingPoint
  • Lapisan konvolusi 2-D yang dapat dipisahkan.

    Lapisan ini melakukan konvolusi mendalam yang bekerja secara terpisah pada saluran diikuti dengan konvolusi titik yang mencampurkan saluran.

    Pernyataan

    @frozen
    public struct SeparableConv2D<Scalar> : Layer where Scalar : TensorFlowFloatingPoint
  • Lapisan yang rata.

    Lapisan rata meratakan masukan saat diterapkan tanpa mempengaruhi ukuran batch.

    Pernyataan

    @frozen
    public struct Flatten<Scalar> : ParameterlessLayer where Scalar : TensorFlowFloatingPoint
  • Lapisan yang membentuk kembali.

    Pernyataan

    @frozen
    public struct Reshape<Scalar> : ParameterlessLayer where Scalar : TensorFlowFloatingPoint
  • Lapisan yang menyertakan fungsi terdiferensiasi khusus.

    Pernyataan

    public struct Function<Input, Output> : ParameterlessLayer where Input : Differentiable, Output : Differentiable
  • Nilai tipe dinamis TensorFlow yang dapat dibuat dari tipe yang sesuai dengan TensorFlowScalar .

    Pernyataan

    public struct TensorDataType : Equatable
  • Pernyataan

    @frozen
    public struct BFloat16
    extension BFloat16: TensorFlowScalar
    extension BFloat16: XLAScalarType
  • Mewakili sekumpulan elemen yang berpotensi besar.

    Dataset dapat digunakan untuk mewakili saluran masukan sebagai kumpulan tensor elemen.

    Pernyataan

    @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
  • Tipe yang memungkinkan iterasi pada elemen kumpulan data.

    Pernyataan

    @available(*, deprecated)
    @frozen
    public struct DatasetIterator<Element> where Element : TensorGroup
    extension DatasetIterator: IteratorProtocol
  • Struktur mirip 2 tupel yang sesuai dengan TensorGroup yang mewakili tupel dengan 2 jenis yang sesuai dengan TensorGroup .

    Pernyataan

    @frozen
    public struct Zip2TensorGroup<T, U> : TensorGroup where T : TensorGroup, U : TensorGroup
  • Lapisan jaringan saraf yang terhubung erat.

    Dense mengimplementasikan operasi activation(matmul(input, weight) + bias) , dengan weight adalah matriks bobot, bias adalah vektor bias, dan activation adalah fungsi aktivasi berdasarkan elemen.

    Lapisan ini juga mendukung tensor bobot 3-D dengan matriks bias 2-D. Dalam hal ini dimensi pertama dari keduanya diperlakukan sebagai ukuran batch yang selaras dengan dimensi input pertama dan varian batch dari operasi matmul(_:_:) digunakan, sehingga menggunakan bobot dan bias yang berbeda untuk setiap elemen dalam kumpulan masukan.

    Pernyataan

    @frozen
    public struct Dense<Scalar> : Layer where Scalar : TensorFlowFloatingPoint
  • Perangkat tempat Tensor dapat dialokasikan.

    Pernyataan

    public struct Device
    extension Device: Equatable
    extension Device: CustomStringConvertible
  • Lapisan putus sekolah.

    Dropout terdiri dari pengaturan acak sebagian kecil unit input ke 0 pada setiap pembaruan selama waktu pelatihan, yang membantu mencegah overfitting.

    Pernyataan

    @frozen
    public struct Dropout<Scalar> : ParameterlessLayer where Scalar : TensorFlowFloatingPoint
  • GaussianNoise menambahkan sampel noise dari distribusi normal.

    Kebisingan yang ditambahkan selalu memiliki rata-rata nol, namun memiliki deviasi standar yang dapat dikonfigurasi.

    Pernyataan

    public struct GaussianNoise<Scalar> : ParameterlessLayer where Scalar : TensorFlowFloatingPoint
  • GaussianDropout mengalikan input dengan sampel noise dari distribusi normal dengan mean 1.0.

    Karena ini adalah lapisan regularisasi, maka hanya aktif selama waktu pelatihan. Selama inferensi, GaussianDropout melewati input tanpa dimodifikasi.

    Pernyataan

    public struct GaussianDropout<Scalar> : ParameterlessLayer where Scalar : TensorFlowFloatingPoint
  • Lapisan putus sekolah Alpha.

    Alpha Dropout adalah Dropout yang menjaga mean dan varians input ke nilai aslinya, untuk memastikan properti normalisasi diri bahkan setelah dropout ini. Alpha Dropout cocok untuk Scaled Exponential Linear Units dengan mengatur aktivasi secara acak ke nilai saturasi negatif.

    Sumber: Jaringan Neural Normalisasi Mandiri: https://arxiv.org/abs/1706.02515

    Pernyataan

    @frozen
    public struct AlphaDropout<Scalar> : ParameterlessLayer where Scalar : TensorFlowFloatingPoint
  • Lapisan penyematan.

    Embedding secara efektif adalah tabel pencarian yang memetakan indeks dari kosakata tetap ke representasi vektor berukuran tetap (padat), misalnya [[0], [3]] -> [[0.25, 0.1], [0.6, -0.2]]

    Pernyataan

    public struct Embedding<Scalar> : Module where Scalar : TensorFlowFloatingPoint
  • Sebuah struct kosong yang mewakili TangentVector s kosong untuk lapisan tanpa parameter.

  • Pasangan momen pertama dan kedua (yaitu mean dan varians).

    Catatan

    Hal ini diperlukan karena tipe tupel tidak dapat dibedakan.

    Pernyataan

    public struct Moments<Scalar> : Differentiable where Scalar : TensorFlowFloatingPoint
  • Lapisan dilatasi morfologi 2-D

    Lapisan ini mengembalikan pelebaran morfologi tensor masukan dengan filter yang disediakan

    Pernyataan

    @frozen
    public struct Dilation2D<Scalar> : Layer where Scalar : TensorFlowFloatingPoint
  • Lapisan erosi morfologi 2-D

    Lapisan ini mengembalikan erosi morfologi dari tensor masukan dengan filter yang disediakan

    Pernyataan

    @frozen
    public struct Erosion2D<Scalar> : Layer where Scalar : TensorFlowFloatingPoint
  • Pemilihan elemen yang lambat, dalam urutan tertentu, dari beberapa koleksi dasar.

    Pernyataan

    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
  • Kumpulan irisan bersebelahan terpanjang yang tidak tumpang tindih dari beberapa kumpulan Base , dimulai dengan elemen pertamanya, dan memiliki panjang maksimum tetap.

    Elemen koleksi ini, kecuali yang terakhir, semuanya memiliki count batchSize , kecuali Base.count % batchSize !=0 , dalam hal ini count batch terakhir adalah base.count % batchSize.

    Pernyataan

    public struct Slices<Base> where Base : Collection
    extension Slices: Collection
  • Lapisan normalisasi batch.

    Menormalkan aktivasi lapisan sebelumnya pada setiap batch, yaitu menerapkan transformasi yang mempertahankan aktivasi rata-rata mendekati 0 dan deviasi standar aktivasi mendekati 1 .

    Referensi: Normalisasi Batch: Mempercepat Pelatihan Jaringan Dalam dengan Mengurangi Pergeseran Kovariat Internal .

    Pernyataan

    @frozen
    public struct BatchNorm<Scalar> : Layer where Scalar : TensorFlowFloatingPoint
  • Lapisan yang menerapkan normalisasi lapisan pada sejumlah kecil masukan.

    Referensi: Normalisasi Lapisan .

    Pernyataan

    @frozen
    public struct LayerNorm<Scalar> : Layer where Scalar : TensorFlowFloatingPoint
  • Lapisan yang menerapkan normalisasi grup pada sejumlah kecil masukan.

    Referensi: Normalisasi Grup .

    Pernyataan

    @frozen
    public struct GroupNorm<Scalar> : Layer where Scalar : TensorFlowFloatingPoint
  • Lapisan yang menerapkan normalisasi instans pada sejumlah kecil input.

    Referensi: Normalisasi Instance: Bahan yang Hilang untuk Stilisasi Cepat .

    Pernyataan

    @frozen
    public struct InstanceNorm<Scalar> : Layer where Scalar : TensorFlowFloatingPoint
  • Nyatakan satu langkah dari satu bobot di dalam pengoptimal.

    Pernyataan

    public struct OptimizerWeightStepState
  • Status global diakses melalui StateAccessor .

    Pernyataan

    public struct OptimizerState
  • [String: Float] tetapi elemen dapat diakses seolah-olah mereka adalah anggota.

    Pernyataan

    @dynamicMemberLookup
    public struct HyperparameterDictionary
  • Pengoptimal yang bekerja pada satu grup parameter.

    Pernyataan

    public struct ParameterGroupOptimizer
  • Pembungkus yang aman untuk tipe di sekitar nilai indeks Int untuk nilai lokal pengoptimal.

    Pernyataan

    public struct LocalAccessor
  • Pembungkus yang aman untuk tipe di sekitar nilai indeks Int untuk nilai global pengoptimal.

    Pernyataan

    public struct GlobalAccessor
  • Pembungkus aman tipe di sekitar nilai indeks Int untuk nilai status pengoptimal.

    Pernyataan

    public struct StateAccessor
  • Membangun ParameterGroupOptimizer . Ini pada dasarnya digunakan pada level bobot tunggal dalam model. Pemetaan dari grup parameter yang dipilih oleh ( [Bool] ke ParameterGroupOptimizer) menentukan pengoptimal akhir.

    Pernyataan

    public struct ParameterGroupOptimizerBuilder
  • Lapisan pengumpulan maksimal untuk data temporal.

    Pernyataan

    @frozen
    public struct MaxPool1D<Scalar> : ParameterlessLayer where Scalar : TensorFlowFloatingPoint
  • Lapisan pengumpulan maksimal untuk data spasial.

    Pernyataan

    @frozen
    public struct MaxPool2D<Scalar> : ParameterlessLayer where Scalar : TensorFlowFloatingPoint
  • Lapisan pengumpulan maksimal untuk data spasial atau spatio-temporal.

    Pernyataan

    @frozen
    public struct MaxPool3D<Scalar> : ParameterlessLayer where Scalar : TensorFlowFloatingPoint
  • Lapisan pengumpulan rata-rata untuk data temporal.

    Pernyataan

    @frozen
    public struct AvgPool1D<Scalar> : ParameterlessLayer where Scalar : TensorFlowFloatingPoint
  • Lapisan pengumpulan rata-rata untuk data spasial.

    Pernyataan

    @frozen
    public struct AvgPool2D<Scalar> : ParameterlessLayer where Scalar : TensorFlowFloatingPoint
  • Lapisan pengumpulan rata-rata untuk data spasial atau spatio-temporal.

    Pernyataan

    @frozen
    public struct AvgPool3D<Scalar> : ParameterlessLayer where Scalar : TensorFlowFloatingPoint
  • Lapisan pengumpulan rata-rata global untuk data temporal.

    Pernyataan

    @frozen
    public struct GlobalAvgPool1D<Scalar> : ParameterlessLayer where Scalar : TensorFlowFloatingPoint
  • Lapisan pengumpulan rata-rata global untuk data spasial.

    Pernyataan

    @frozen
    public struct GlobalAvgPool2D<Scalar> : ParameterlessLayer where Scalar : TensorFlowFloatingPoint
  • Lapisan pengumpulan rata-rata global untuk data spasial dan spatio-temporal.

    Pernyataan

    @frozen
    public struct GlobalAvgPool3D<Scalar> : ParameterlessLayer where Scalar : TensorFlowFloatingPoint
  • Lapisan pengumpulan maksimal global untuk data temporal.

    Pernyataan

    @frozen
    public struct GlobalMaxPool1D<Scalar> : ParameterlessLayer where Scalar : TensorFlowFloatingPoint
  • Lapisan pengumpulan maksimal global untuk data spasial.

    Pernyataan

    @frozen
    public struct GlobalMaxPool2D<Scalar> : ParameterlessLayer where Scalar : TensorFlowFloatingPoint
  • Lapisan pengumpulan maksimal global untuk data spasial dan spatio-temporal.

    Pernyataan

    @frozen
    public struct GlobalMaxPool3D<Scalar> : ParameterlessLayer where Scalar : TensorFlowFloatingPoint
  • Lapisan pengumpulan maksimal pecahan untuk data spasial. Catatan: FractionalMaxPool tidak memiliki implementasi XLA, sehingga mungkin mempunyai implikasi kinerja.

    Pernyataan

    @frozen
    public struct FractionalMaxPool2D<Scalar> : ParameterlessLayer where Scalar : TensorFlowFloatingPoint
  • PythonObject mewakili objek dengan Python dan mendukung pencarian anggota dinamis. Setiap akses anggota seperti object.foo akan secara dinamis meminta runtime Python untuk anggota dengan nama yang ditentukan dalam objek ini.

    PythonObject diteruskan dan dikembalikan dari semua panggilan fungsi Python dan referensi anggota. Ini mendukung aritmatika dan operator perbandingan Python standar.

    Secara internal, PythonObject diimplementasikan sebagai penunjuk yang dihitung referensi ke Python C API PyObject .

    Pernyataan

    @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
  • Pembungkus PythonObject yang memungkinkan pelemparan pemanggilan metode. Pengecualian yang dihasilkan oleh fungsi Python tercermin sebagai kesalahan Swift dan ditampilkan.

    Catatan

    ThrowingPythonObject disengaja tidak memiliki atribut @dynamicCallable karena sintaks panggilannya tidak intuitif: x.throwing(arg1, arg2, ...) . Metode tersebut akan tetap diberi nama dynamicallyCall hingga diskusi/desain lebih lanjut.

    Pernyataan

    public struct ThrowingPythonObject
  • Pembungkus PythonObject yang memungkinkan akses anggota. Operasi akses anggota mengembalikan hasil Optional . Ketika akses anggota gagal, nil dikembalikan.

    Pernyataan

    @dynamicMemberLookup
    public struct CheckingPythonObject
  • Antarmuka untuk Python.

    PythonInterface memungkinkan interaksi dengan Python. Ini dapat digunakan untuk mengimpor modul dan mengakses tipe dan fungsi bawaan Python secara dinamis.

    Catatan

    Ini tidak dimaksudkan agar PythonInterface diinisialisasi secara langsung. Sebagai gantinya, gunakan instance global PythonInterface yang disebut Python .

    Pernyataan

    @dynamicMemberLookup
    public struct PythonInterface
  • Pernyataan

    public struct PythonLibrary
  • Generator nomor acak yang terhapus tipe.

    Tipe AnyRandomNumberGenerator meneruskan operasi penghasil angka acak ke penghasil angka acak yang mendasarinya, menyembunyikan tipe dasar spesifiknya.

    Pernyataan

    public struct AnyRandomNumberGenerator : RandomNumberGenerator
  • Implementasi SeedableRandomNumberGenerator menggunakan ARC4.

    ARC4 adalah stream cipher yang menghasilkan aliran byte pseudo-acak. PRNG ini menggunakan benih sebagai kuncinya.

    ARC4 dijelaskan dalam Schneier, B., “Kriptografi Terapan: Protokol, Algoritma, dan Kode Sumber dalam C”, Edisi ke-2, 1996.

    Generator individual tidak aman untuk thread, tetapi generator yang berbeda tidak berbagi status. Data acak yang dihasilkan berkualitas tinggi, namun tidak cocok untuk aplikasi kriptografi.

    Pernyataan

    @frozen
    public struct ARC4RandomNumberGenerator : SeedableRandomNumberGenerator
  • Implementasi SeedableRandomNumberGenerator menggunakan Threefry. Salmon dkk. SC 2011. Bilangan acak paralel: semudah 1, 2, 3. http://www.thesalmons.org/john/random123/papers/random123sc11.pdf

    Struktur ini mengimplementasikan PRNG Threefry2x32 20 putaran. Itu harus diunggulkan dengan nilai 64-bit.

    Generator individual tidak aman untuk thread, tetapi generator yang berbeda tidak berbagi status. Data acak yang dihasilkan berkualitas tinggi, namun tidak cocok untuk aplikasi kriptografi.

    Pernyataan

    public struct ThreefryRandomNumberGenerator : SeedableRandomNumberGenerator
  • Implementasi SeedableRandomNumberGenerator menggunakan Philox. Salmon dkk. SC 2011. Bilangan acak paralel: semudah 1, 2, 3. http://www.thesalmons.org/john/random123/papers/random123sc11.pdf

    Struct ini mengimplementasikan PRNG Philox4x32 10 putaran. Itu harus diunggulkan dengan nilai 64-bit.

    Generator individual tidak aman untuk thread, tetapi generator yang berbeda tidak berbagi status. Data acak yang dihasilkan berkualitas tinggi, namun tidak cocok untuk aplikasi kriptografi.

    Pernyataan

    public struct PhiloxRandomNumberGenerator : SeedableRandomNumberGenerator
  • Pernyataan

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

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

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

    @frozen
    public struct BetaDistribution : RandomDistribution
  • Masukan ke jaringan saraf berulang.

    Pernyataan

    public struct RNNCellInput<Input, State> : Differentiable where Input : Differentiable, State : Differentiable
    extension RNNCellInput: EuclideanDifferentiable
    where Input: EuclideanDifferentiable, State: EuclideanDifferentiable
  • Output ke jaringan saraf berulang.

    Pernyataan

    public struct RNNCellOutput<Output, State> : Differentiable where Output : Differentiable, State : Differentiable
    extension RNNCellOutput: EuclideanDifferentiable
    where Output: EuclideanDifferentiable, State: EuclideanDifferentiable
  • Sel RNN dasar.

    Pernyataan

    public struct BasicRNNCell<Scalar> : RecurrentLayerCell where Scalar : TensorFlowFloatingPoint
  • Sel LSTM.

    Pernyataan

    public struct LSTMCell<Scalar> : RecurrentLayerCell where Scalar : TensorFlowFloatingPoint
  • Sel GRU.

    Pernyataan

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

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

    public struct BidirectionalRecurrentLayer<Cell: RecurrentLayerCell>: Layer
    where Cell.TimeStepOutput: Mergeable
  • Lapisan yang secara berurutan menyusun dua atau lebih lapisan lainnya.

    Contoh:

    • Buat model perceptron 2 lapis sederhana untuk MNIST:
    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)
     }
    
    • Buat autoencoder untuk MNIST:
    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)
    }
    

    Pernyataan

    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
  • Pernyataan

    @_functionBuilder
    public struct LayerBuilder
  • ShapedArray adalah array multidimensi. Ia memiliki bentuk yang bertipe [Int] dan mendefinisikan dimensi array, serta menggunakan TensorBuffer secara internal sebagai penyimpanan.

    Pernyataan

    @frozen
    public struct ShapedArray<Scalar> : _ShapedArrayProtocol
    extension ShapedArray: RandomAccessCollection, MutableCollection
    extension ShapedArray: CustomStringConvertible
    extension ShapedArray: CustomPlaygroundDisplayConvertible
    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
  • Sepotong yang berdekatan dari instance ShapedArray atau ShapedArraySlice .

    ShapedArraySlice memungkinkan operasi yang cepat dan efisien pada irisan instans ShapedArray yang berdekatan. Instance ShapedArraySlice tidak memiliki penyimpanannya sendiri. Sebaliknya, mereka memberikan tampilan ke penyimpanan basis mereka ShapedArray . ShapedArraySlice dapat mewakili dua jenis irisan yang berbeda: array elemen dan subarray.

    Array elemen adalah elemen subdimensi dari ShapedArray : peringkatnya kurang satu dari peringkat dasarnya. Irisan array elemen diperoleh dengan mengindeks instance ShapedArray dengan indeks Int32 tunggal.

    Misalnya:

        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]].
    

    Subarray adalah rentang elemen yang berdekatan dalam ShapedArray . Pangkat suatu subarray sama dengan pangkat dasarnya, namun dimensi utamanya adalah jumlah rentang irisan. Irisan subarray diperoleh dengan mengindeks ShapedArray dengan Range<Int32> yang mewakili rentang elemen (dalam dimensi utama). Metode seperti prefix(:) dan suffix(:) yang mengindeks secara internal dengan suatu rentang juga menghasilkan subarray.

    Misalnya:

        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]].
    

    Pernyataan

    @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 adalah array multidimensi yang elemennya adalah String s.

    Pernyataan

    @frozen
    public struct StringTensor
    extension StringTensor: TensorGroup
  • TensorHandle adalah tipe yang digunakan oleh operasi. Ini mencakup tipe Scalar , yang dapat digunakan oleh internal kompiler untuk menentukan tipe data parameter ketika parameter tersebut diekstraksi ke dalam program tensor.

    Pernyataan

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

    public struct ResourceHandle
    extension ResourceHandle: TensorGroup
  • Pernyataan

    public struct VariantHandle
    extension VariantHandle: TensorGroup
  • Sebuah struct yang mewakili bentuk tensor.

    TensorShape adalah pembungkus tipis di sekitar array bilangan bulat yang mewakili dimensi bentuk. Semua jenis tensor menggunakan TensorShape untuk merepresentasikan bentuknya.

    Pernyataan

    @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 mendekati [WritableKeyPath<Base, Tensor<Float>] tetapi lebih efisien. Hal ini berguna untuk menulis pengoptimal umum yang ingin memetakan gradien, bobot yang ada, dan indeks yang dapat digunakan untuk menemukan bobot tambahan yang disimpan. Ini sedikit lebih efisien (~2x) tetapi bisa lebih baik karena mengorbankan overhead yang sedikit lebih tinggi (dereferensi penunjuk tambahan) karena tidak harus melakukan pekerjaan O(kedalaman_of_tree) yang diperlukan dengan daftar biasa untuk melacak masing-masing KeyPath.

    Pernyataan

    public struct TensorVisitorPlan<Base>
  • Lapisan upsampling untuk input 1-D.

    Pernyataan

    @frozen
    public struct UpSampling1D<Scalar> : ParameterlessLayer where Scalar : TensorFlowFloatingPoint
  • Lapisan upsampling untuk input 2-D.

    Pernyataan

    @frozen
    public struct UpSampling2D<Scalar> : ParameterlessLayer where Scalar : TensorFlowFloatingPoint
  • Lapisan upsampling untuk input 3-D.

    Pernyataan

    @frozen
    public struct UpSampling3D<Scalar> : ParameterlessLayer where Scalar : TensorFlowFloatingPoint
  • Mengumpulkan penghitung prediksi yang benar dan total kerugian.

    Pernyataan

    public struct HostStatistics