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 denganDifferentiable
danAdditiveArithmetic
, 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 (sepertiInt32
,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
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
- Atur fase pembelajaran saat ini ke pelatihan sehingga lapisan seperti
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
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 operasiactivation(matmul(input, weight) + bias)
, di manaweight
adalah matriks bobot,bias
adalah vektor bias, danactivation
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 operasimatmul(_:_:)
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.Pernyataan
public struct EmptyTangentVector: EuclideanDifferentiable, VectorProtocol, ElementaryFunctions, PointwiseMultiplicative, KeyPathIterable
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
, kecualiBase.count % batchSize !=0
, dalam hal inicount
batch terakhir adalahbase.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 mendekati1
.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 sepertiobject.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 APIPyObject
.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 namadynamicallyCall
hingga diskusi/desain lebih lanjut.Pernyataan
public struct ThrowingPythonObject
Pembungkus
PythonObject
yang memungkinkan akses anggota. Operasi akses anggota mengembalikan hasilOptional
. 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 agarPythonInterface
diinisialisasi secara langsung. Sebagai gantinya, gunakan instance globalPythonInterface
yang disebutPython
.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.pdfStruktur 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.pdfStruct 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
@_functionBuilder public struct LayerBuilder
ShapedArray
adalah array multidimensi. Ia memiliki bentuk yang bertipe[Int]
dan mendefinisikan dimensi array, serta menggunakanTensorBuffer
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
atauShapedArraySlice
.ShapedArraySlice
memungkinkan operasi yang cepat dan efisien pada irisan instansShapedArray
yang berdekatan. InstanceShapedArraySlice
tidak memiliki penyimpanannya sendiri. Sebaliknya, mereka memberikan tampilan ke penyimpanan basis merekaShapedArray
.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 instanceShapedArray
dengan indeksInt32
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 mengindeksShapedArray
denganRange<Int32>
yang mewakili rentang elemen (dalam dimensi utama). Metode sepertiprefix(:)
dansuffix(:)
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 adalahString
s.Pernyataan
@frozen public struct StringTensor
extension StringTensor: TensorGroup
TensorHandle
adalah tipe yang digunakan oleh operasi. Ini mencakup tipeScalar
, 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 menggunakanTensorShape
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