Strutture

Le seguenti strutture sono disponibili a livello globale.

  • Una concatenazione di due sequenze con lo stesso tipo di elemento.

    Dichiarazione

    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
  • Una vista ruotata su una raccolta.

    Dichiarazione

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

    public struct AnyDifferentiable : Differentiable
  • Un valore derivativo cancellato dal tipo.

    Il tipo AnyDerivative inoltra le sue operazioni a un valore derivato di base sottostante arbitrario conforme a Differentiable e AdditiveArithmetic , nascondendo le specifiche del valore sottostante.

    Dichiarazione

    @frozen
    public struct AnyDerivative : Differentiable & AdditiveArithmetic
  • Un array multidimensionale di elementi che è una generalizzazione di vettori e matrici a dimensioni potenzialmente superiori.

    Il parametro generico Scalar descrive il tipo di scalari nel tensore (come Int32 , Float , ecc.).

    Dichiarazione

    @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: VectorProtocol where Scalar: TensorFlowFloatingPoint
    l10n-
    extension Tensor: Mergeable where Scalar: TensorFlowFloatingPoint
    l10n-
    extension Tensor: ElementaryFunctions 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
  • Una funzione pullback che esegue la trasposizione della trasmissione di due Tensors .

    Dichiarazione

    public struct BroadcastingPullback
  • Un contesto che archivia informazioni contestuali thread-local utilizzate dalle API di deep learning come i livelli.

    Utilizzare Context.local per recuperare il contesto thread-locale corrente.

    Esempi:

    • Imposta la fase di apprendimento corrente su training in modo che layer come BatchNorm calcolino la media e la varianza quando applicati agli input.
      Context.local.learningPhase = .training
    
    • Imposta la fase di apprendimento corrente sull'inferenza in modo che livelli come Dropout non eliminino unità quando applicati agli input.
      Context.local.learningPhase = .inference
    

    Dichiarazione

    public struct Context
  • Uno strato di convoluzione 1-D (ad esempio, convoluzione temporale su una serie temporale).

    Questo livello crea un filtro di convoluzione che viene convoluto con l'input del livello per produrre un tensore di output.

    Dichiarazione

    @frozen
    public struct Conv1D<Scalar> : Layer where Scalar : TensorFlowFloatingPoint
  • Uno strato di convoluzione 2D (ad esempio, convoluzione spaziale sulle immagini).

    Questo livello crea un filtro di convoluzione che viene convoluto con l'input del livello per produrre un tensore di output.

    Dichiarazione

    @frozen
    public struct Conv2D<Scalar> : Layer where Scalar : TensorFlowFloatingPoint
  • Un livello di convoluzione 3D per la convoluzione spaziale/spazio-temporale sulle immagini.

    Questo livello crea un filtro di convoluzione che viene convoluto con l'input del livello per produrre un tensore di output.

    Dichiarazione

    @frozen
    public struct Conv3D<Scalar> : Layer where Scalar : TensorFlowFloatingPoint
  • Uno strato di convoluzione trasposto 1-D (ad esempio, una convoluzione temporale trasposta sulle immagini).

    Questo livello crea un filtro di convoluzione che viene trasposto-convoluto con l'input del livello per produrre un tensore di output.

    Dichiarazione

    @frozen
    public struct TransposedConv1D<Scalar> : Layer where Scalar : TensorFlowFloatingPoint
  • Uno strato di convoluzione trasposto 2-D (ad esempio, convoluzione spaziale trasposta sulle immagini).

    Questo livello crea un filtro di convoluzione che viene trasposto-convoluto con l'input del livello per produrre un tensore di output.

    Dichiarazione

    @frozen
    public struct TransposedConv2D<Scalar> : Layer where Scalar : TensorFlowFloatingPoint
  • Uno strato di convoluzione trasposto in 3D (ad esempio, convoluzione spaziale trasposta sulle immagini).

    Questo livello crea un filtro di convoluzione che viene trasposto-convoluto con l'input del livello per produrre un tensore di output.

    Dichiarazione

    @frozen
    public struct TransposedConv3D<Scalar> : Layer where Scalar : TensorFlowFloatingPoint
  • Uno strato di convoluzione in profondità 2D.

    Questo livello crea filtri di convoluzione separabili che vengono convoluti con l'input del livello per produrre un tensore di output.

    Dichiarazione

    @frozen
    public struct DepthwiseConv2D<Scalar> : Layer where Scalar : TensorFlowFloatingPoint
  • Un livello per aggiungere zero-padding nella dimensione temporale.

    Dichiarazione

    public struct ZeroPadding1D<Scalar> : ParameterlessLayer where Scalar : TensorFlowFloatingPoint
  • Un livello per l'aggiunta di riempimento zero nelle dimensioni spaziali.

    Dichiarazione

    public struct ZeroPadding2D<Scalar> : ParameterlessLayer where Scalar : TensorFlowFloatingPoint
  • Un livello per aggiungere zero-padding nelle dimensioni spaziali/spazio-temporali.

    Dichiarazione

    public struct ZeroPadding3D<Scalar> : ParameterlessLayer where Scalar : TensorFlowFloatingPoint
  • Uno strato di convoluzione separabile 1-D.

    Questo livello esegue una convoluzione in profondità che agisce separatamente sui canali seguita da una convoluzione puntuale che mescola i canali.

    Dichiarazione

    @frozen
    public struct SeparableConv1D<Scalar> : Layer where Scalar : TensorFlowFloatingPoint
  • Uno strato di convoluzione separabile 2D.

    Questo livello esegue una convoluzione in profondità che agisce separatamente sui canali seguita da una convoluzione puntuale che mescola i canali.

    Dichiarazione

    @frozen
    public struct SeparableConv2D<Scalar> : Layer where Scalar : TensorFlowFloatingPoint
  • Uno strato appiattito.

    Un livello di appiattimento appiattisce l'input quando applicato senza influire sulla dimensione del batch.

    Dichiarazione

    @frozen
    public struct Flatten<Scalar> : ParameterlessLayer where Scalar : TensorFlowFloatingPoint
  • Un livello di rimodellamento.

    Dichiarazione

    @frozen
    public struct Reshape<Scalar> : ParameterlessLayer where Scalar : TensorFlowFloatingPoint
  • Un livello che racchiude una funzione differenziabile personalizzata.

    Dichiarazione

    public struct Function<Input, Output> : ParameterlessLayer where Input : Differentiable, Output : Differentiable
  • Un valore di tipo dinamico TensorFlow che può essere creato da tipi conformi a TensorFlowScalar .

    Dichiarazione

    public struct TensorDataType : Equatable
  • Dichiarazione

    @frozen
    public struct BFloat16
    extension BFloat16: TensorFlowScalar
    extension BFloat16: XLAScalarType
  • Rappresenta un insieme di elementi potenzialmente ampio.

    Un Dataset può essere utilizzato per rappresentare una pipeline di input come una raccolta di tensori di elementi.

    Dichiarazione

    @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
  • Il tipo che consente l'iterazione sugli elementi di un set di dati.

    Dichiarazione

    @available(*, deprecated)
    @frozen
    public struct DatasetIterator<Element> where Element : TensorGroup
    extension DatasetIterator: IteratorProtocol
  • Una struttura simile a 2 tuple conforme a TensorGroup che rappresenta una tupla di 2 tipi conformi a TensorGroup .

    Dichiarazione

    @frozen
    public struct Zip2TensorGroup<T, U> : TensorGroup where T : TensorGroup, U : TensorGroup
  • Uno strato di rete neurale densamente connesso.

    Dense implementa l'operazione activation(matmul(input, weight) + bias) , dove weight è una matrice di peso, bias è un vettore di polarizzazione e activation è una funzione di attivazione per elemento.

    Questo livello supporta anche tensori di peso 3D con matrici di polarizzazione 2D. In questo caso la prima dimensione di entrambi viene trattata come la dimensione batch allineata con la prima dimensione input e viene utilizzata la variante batch dell'operazione matmul(_:_:) , utilizzando quindi un peso e una distorsione diversi per ciascun elemento nel batch di input.

    Dichiarazione

    @frozen
    public struct Dense<Scalar> : Layer where Scalar : TensorFlowFloatingPoint
  • Un dispositivo su cui è possibile allocare Tensor .

    Dichiarazione

    public struct Device
    extension Device: Equatable
    extension Device: CustomStringConvertible
  • Uno strato di abbandono.

    Il dropout consiste nell'impostare casualmente una frazione di unità di input su 0 ad ogni aggiornamento durante il periodo di addestramento, il che aiuta a prevenire l'overfitting.

    Dichiarazione

    @frozen
    public struct Dropout<Scalar> : ParameterlessLayer where Scalar : TensorFlowFloatingPoint
  • GaussianNoise aggiunge rumore campionato da una distribuzione normale.

    Il rumore aggiunto ha sempre media zero, ma ha una deviazione standard configurabile.

    Dichiarazione

    public struct GaussianNoise<Scalar> : ParameterlessLayer where Scalar : TensorFlowFloatingPoint
  • GaussianDropout moltiplica l'input per il rumore campionato da una distribuzione normale con media 1,0.

    Poiché si tratta di un livello di regolarizzazione, è attivo solo durante il periodo di addestramento. Durante l'inferenza, GaussianDropout passa attraverso l'input senza modifiche.

    Dichiarazione

    public struct GaussianDropout<Scalar> : ParameterlessLayer where Scalar : TensorFlowFloatingPoint
  • Uno strato di dropout Alpha.

    Alpha Dropout è un Dropout che mantiene la media e la varianza degli input ai loro valori originali, al fine di garantire la proprietà autonormalizzante anche dopo questo dropout. Alpha Dropout si adatta bene alle unità lineari esponenziali scalate impostando casualmente le attivazioni sul valore di saturazione negativo.

    Fonte: Reti neurali autonormalizzanti: https://arxiv.org/abs/1706.02515

    Dichiarazione

    @frozen
    public struct AlphaDropout<Scalar> : ParameterlessLayer where Scalar : TensorFlowFloatingPoint
  • Uno strato di incorporamento.

    Embedding è effettivamente una tabella di ricerca che mappa gli indici da un vocabolario fisso a rappresentazioni vettoriali (dense) di dimensione fissa, ad esempio [[0], [3]] -> [[0.25, 0.1], [0.6, -0.2]] .

    Dichiarazione

    public struct Embedding<Scalar> : Module where Scalar : TensorFlowFloatingPoint
  • Una struttura vuota che rappresenta TangentVector vuoti per layer senza parametri.

  • Coppia di momenti primo e secondo (cioè media e varianza).

    Nota

    Ciò è necessario perché i tipi di tupla non sono differenziabili.

    Dichiarazione

    public struct Moments<Scalar> : Differentiable where Scalar : TensorFlowFloatingPoint
  • Uno strato di dilatazione morfologica 2-D

    Questo layer restituisce la dilatazione morfologica del tensore di input con i filtri forniti

    Dichiarazione

    @frozen
    public struct Dilation2D<Scalar> : Layer where Scalar : TensorFlowFloatingPoint
  • Uno strato di erosione morfologica 2-D

    Questo strato restituisce l'erosione morfologica del tensore di input con i filtri forniti

    Dichiarazione

    @frozen
    public struct Erosion2D<Scalar> : Layer where Scalar : TensorFlowFloatingPoint
  • Una pigra selezione di elementi, in un dato ordine, da una collezione di base.

    Dichiarazione

    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
  • Una raccolta delle sezioni contigue non sovrapposte più lunghe di una raccolta Base , a partire dal primo elemento e con una lunghezza massima fissa.

    Gli elementi di questa raccolta, tranne l'ultimo, hanno tutti un count di batchSize , a meno che Base.count % batchSize !=0 , nel qual caso il count dell'ultimo batch è base.count % batchSize.

    Dichiarazione

    public struct Slices<Base> where Base : Collection
    extension Slices: Collection
  • Un livello di normalizzazione batch.

    Normalizza le attivazioni dello strato precedente ad ogni batch, ovvero applica una trasformazione che mantiene l'attivazione media vicina a 0 e la deviazione standard di attivazione vicina a 1 .

    Riferimento: Normalizzazione batch: accelerazione dell'addestramento della rete profonda riducendo lo spostamento della covariata interna .

    Dichiarazione

    @frozen
    public struct BatchNorm<Scalar> : Layer where Scalar : TensorFlowFloatingPoint
  • Un livello che applica la normalizzazione del livello su un mini-batch di input.

    Riferimento: Normalizzazione dei livelli .

    Dichiarazione

    @frozen
    public struct LayerNorm<Scalar> : Layer where Scalar : TensorFlowFloatingPoint
  • Un livello che applica la normalizzazione del gruppo su un mini-batch di input.

    Riferimento: normalizzazione del gruppo .

    Dichiarazione

    @frozen
    public struct GroupNorm<Scalar> : Layer where Scalar : TensorFlowFloatingPoint
  • Un livello che applica la normalizzazione dell'istanza su un mini-batch di input.

    Riferimento: Normalizzazione dell'istanza: l'ingrediente mancante per una stilizzazione rapida .

    Dichiarazione

    @frozen
    public struct InstanceNorm<Scalar> : Layer where Scalar : TensorFlowFloatingPoint
  • Stato per un singolo passaggio di un singolo peso all'interno di un ottimizzatore.

    Dichiarazione

    public struct OptimizerWeightStepState
  • Stato globale a cui si accede tramite StateAccessor .

    Dichiarazione

    public struct OptimizerState
  • [String: Float] ma è possibile accedere agli elementi come se fossero membri.

    Dichiarazione

    @dynamicMemberLookup
    public struct HyperparameterDictionary
  • Un ottimizzatore che funziona su un singolo gruppo di parametri.

    Dichiarazione

    public struct ParameterGroupOptimizer
  • Un wrapper indipendente dai tipi attorno a un valore di indice Int per i valori locali dell'ottimizzatore.

    Dichiarazione

    public struct LocalAccessor
  • Un wrapper indipendente dai tipi attorno a un valore di indice Int per i valori globali dell'ottimizzatore.

    Dichiarazione

    public struct GlobalAccessor
  • Un wrapper indipendente dai tipi attorno a un valore di indice Int per i valori dello stato dell'ottimizzatore.

    Dichiarazione

    public struct StateAccessor
  • Costruisce un ParameterGroupOptimizer . Questo viene utilizzato essenzialmente al livello di un singolo peso nel modello. Una mappatura dai gruppi di parametri selezionati da ( [Bool] a ParametroGroupOptimizer) definisce l'ottimizzatore finale.

    Dichiarazione

    public struct ParameterGroupOptimizerBuilder
  • Un livello di pooling massimo per i dati temporali.

    Dichiarazione

    @frozen
    public struct MaxPool1D<Scalar> : ParameterlessLayer where Scalar : TensorFlowFloatingPoint
  • Un livello di pooling massimo per i dati spaziali.

    Dichiarazione

    @frozen
    public struct MaxPool2D<Scalar> : ParameterlessLayer where Scalar : TensorFlowFloatingPoint
  • Un livello di pooling massimo per dati spaziali o spazio-temporali.

    Dichiarazione

    @frozen
    public struct MaxPool3D<Scalar> : ParameterlessLayer where Scalar : TensorFlowFloatingPoint
  • Un livello di pooling medio per i dati temporali.

    Dichiarazione

    @frozen
    public struct AvgPool1D<Scalar> : ParameterlessLayer where Scalar : TensorFlowFloatingPoint
  • Un livello di pooling medio per i dati spaziali.

    Dichiarazione

    @frozen
    public struct AvgPool2D<Scalar> : ParameterlessLayer where Scalar : TensorFlowFloatingPoint
  • Un livello di pooling medio per dati spaziali o spazio-temporali.

    Dichiarazione

    @frozen
    public struct AvgPool3D<Scalar> : ParameterlessLayer where Scalar : TensorFlowFloatingPoint
  • Un livello di pooling medio globale per i dati temporali.

    Dichiarazione

    @frozen
    public struct GlobalAvgPool1D<Scalar> : ParameterlessLayer where Scalar : TensorFlowFloatingPoint
  • Un livello di pooling medio globale per i dati spaziali.

    Dichiarazione

    @frozen
    public struct GlobalAvgPool2D<Scalar> : ParameterlessLayer where Scalar : TensorFlowFloatingPoint
  • Un livello di pooling medio globale per dati spaziali e spazio-temporali.

    Dichiarazione

    @frozen
    public struct GlobalAvgPool3D<Scalar> : ParameterlessLayer where Scalar : TensorFlowFloatingPoint
  • Un livello di pooling massimo globale per i dati temporali.

    Dichiarazione

    @frozen
    public struct GlobalMaxPool1D<Scalar> : ParameterlessLayer where Scalar : TensorFlowFloatingPoint
  • Un livello di pooling massimo globale per i dati spaziali.

    Dichiarazione

    @frozen
    public struct GlobalMaxPool2D<Scalar> : ParameterlessLayer where Scalar : TensorFlowFloatingPoint
  • Un livello di pooling massimo globale per dati spaziali e spazio-temporali.

    Dichiarazione

    @frozen
    public struct GlobalMaxPool3D<Scalar> : ParameterlessLayer where Scalar : TensorFlowFloatingPoint
  • Un livello di pooling massimo frazionario per i dati spaziali. Nota: FractionalMaxPool non dispone di un'implementazione XLA e pertanto potrebbe avere implicazioni sulle prestazioni.

    Dichiarazione

    @frozen
    public struct FractionalMaxPool2D<Scalar> : ParameterlessLayer where Scalar : TensorFlowFloatingPoint
  • PythonObject rappresenta un oggetto in Python e supporta la ricerca dinamica dei membri. Qualsiasi accesso membro come object.foo richiederà dinamicamente il runtime Python per un membro con il nome specificato in questo oggetto.

    PythonObject viene passato e restituito da tutte le chiamate di funzioni Python e i riferimenti ai membri. Supporta gli operatori aritmetici e di confronto Python standard.

    Internamente, PythonObject è implementato come puntatore con conteggio dei riferimenti a un'API Python C PyObject .

    Dichiarazione

    @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 : Sequence
    extension PythonObject : MutableCollection
    extension PythonObject : ExpressibleByBooleanLiteral, ExpressibleByIntegerLiteral,
    ExpressibleByFloatLiteral, ExpressibleByStringLiteral
    extension PythonObject : ExpressibleByArrayLiteral, ExpressibleByDictionaryLiteral
  • Un wrapper PythonObject che consente di lanciare chiamate al metodo. Le eccezioni prodotte dalle funzioni Python si riflettono come errori Swift e vengono lanciate.

    Nota

    È intenzionale che ThrowingPythonObject non abbia l'attributo @dynamicCallable perché la sintassi della chiamata non è intuitiva: x.throwing(arg1, arg2, ...) . I metodi verranno comunque denominati dynamicallyCall fino a ulteriore discussione/progettazione.

    Dichiarazione

    public struct ThrowingPythonObject
  • Un wrapper PythonObject che consente gli accessi ai membri. Le operazioni di accesso dei membri restituiscono un risultato Optional . Quando l'accesso dei membri fallisce, viene restituito nil .

    Dichiarazione

    @dynamicMemberLookup
    public struct CheckingPythonObject
  • Un'interfaccia per Python.

    PythonInterface consente l'interazione con Python. Può essere utilizzato per importare moduli e accedere dinamicamente a tipi e funzioni integrati di Python.

    Nota

    Non è previsto che PythonInterface venga inizializzato direttamente. Utilizza invece l'istanza globale di PythonInterface chiamata Python .

    Dichiarazione

    @dynamicMemberLookup
    public struct PythonInterface
  • Dichiarazione

    public struct PythonLibrary
  • Un generatore di numeri casuali cancellati dal tipo.

    Il tipo AnyRandomNumberGenerator inoltra le operazioni di generazione di numeri casuali a un generatore di numeri casuali sottostante, nascondendone il tipo sottostante specifico.

    Dichiarazione

    public struct AnyRandomNumberGenerator : RandomNumberGenerator
  • Un'implementazione di SeedableRandomNumberGenerator utilizzando ARC4.

    ARC4 è un codice a flusso che genera un flusso di byte pseudo-casuale. Questo PRNG utilizza il seme come chiave.

    ARC4 è descritto in Schneier, B., “Applied Cryptography: Protocols, Algorithms, and Source Code in C”, 2a edizione, 1996.

    Un singolo generatore non è thread-safe, ma i generatori distinti non condividono lo stato. I dati casuali generati sono di alta qualità, ma non sono adatti per applicazioni crittografiche.

    Dichiarazione

    @frozen
    public struct ARC4RandomNumberGenerator : SeedableRandomNumberGenerator
  • Un'implementazione di SeedableRandomNumberGenerator utilizzando Threefry. Salmon et al. SC 2011. Numeri casuali paralleli: facili come 1, 2, 3. http://www.thesalmons.org/john/random123/papers/random123sc11.pdf

    Questa struttura implementa un PRNG Threefry2x32 da 20 round. Deve avere un valore a 64 bit.

    Un singolo generatore non è thread-safe, ma i generatori distinti non condividono lo stato. I dati casuali generati sono di alta qualità, ma non sono adatti per applicazioni crittografiche.

    Dichiarazione

    public struct ThreefryRandomNumberGenerator : SeedableRandomNumberGenerator
  • Un'implementazione di SeedableRandomNumberGenerator utilizzando Philox. Salmon et al. SC 2011. Numeri casuali paralleli: facili come 1, 2, 3. http://www.thesalmons.org/john/random123/papers/random123sc11.pdf

    Questa struttura implementa un PRNG Philox4x32 da 10 round. Deve avere un valore a 64 bit.

    Un singolo generatore non è thread-safe, ma i generatori distinti non condividono lo stato. I dati casuali generati sono di alta qualità, ma non sono adatti per applicazioni crittografiche.

    Dichiarazione

    public struct PhiloxRandomNumberGenerator : SeedableRandomNumberGenerator
  • Dichiarazione

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

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

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

    @frozen
    public struct BetaDistribution : RandomDistribution
  • Un input per una rete neurale ricorrente.

    Dichiarazione

    public struct RNNCellInput<Input, State> : Differentiable where Input : Differentiable, State : Differentiable
    extension RNNCellInput: EuclideanDifferentiable
    where Input: EuclideanDifferentiable, State: EuclideanDifferentiable
  • Un output verso una rete neurale ricorrente.

    Dichiarazione

    public struct RNNCellOutput<Output, State> : Differentiable where Output : Differentiable, State : Differentiable
    extension RNNCellOutput: EuclideanDifferentiable
    where Output: EuclideanDifferentiable, State: EuclideanDifferentiable
  • Una cella RNN di base.

    Dichiarazione

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

    Dichiarazione

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

    Dichiarazione

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

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

    public struct BidirectionalRecurrentLayer<Cell: RecurrentLayerCell>: Layer
    where Cell.TimeStepOutput: Mergeable
  • Uno strato che compone in sequenza due o più altri strati.

    Esempi:

    • Costruisci un semplice modello di percettrone a 2 strati per 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)
     }
    
    • Costruisci un codificatore automatico per 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)
    }
    

    Dichiarazione

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

    @_functionBuilder
    public struct LayerBuilder
  • ShapedArray è un array multidimensionale. Ha una forma, che è di tipo [Int] e definisce le dimensioni dell'array e utilizza internamente un TensorBuffer come memoria.

    Dichiarazione

    @frozen
    public struct ShapedArray<Scalar> : _ShapedArrayProtocol
    extension ShapedArray: RandomAccessCollection, MutableCollection
    extension ShapedArray: CustomStringConvertible
    extension ShapedArray: CustomPlaygroundDisplayConvertible
    extension ShapedArray: CustomReflectable
    l10n-placeholder147
    extension ShapedArray: ExpressibleByArrayLiteral where Scalar: TensorFlowScalar
    extension ShapedArray: Equatable where Scalar: Equatable
    extension ShapedArray: Hashable where Scalar: Hashable
    extension ShapedArray: Codable where Scalar: Codable
  • Una sezione contigua di un'istanza ShapedArray o ShapedArraySlice .

    ShapedArraySlice consente operazioni rapide ed efficienti su sezioni contigue di istanze ShapedArray . Le istanze ShapedArraySlice non hanno un proprio spazio di archiviazione. Invece, forniscono una vista sull'archiviazione del loro ShapedArray di base. ShapedArraySlice può rappresentare due diversi tipi di sezioni: array di elementi e sottoarray.

    Gli array di elementi sono elementi subdimensionali di uno ShapedArray : il loro rango è uno in meno rispetto a quello della loro base. Le sezioni della matrice di elementi vengono ottenute indicizzando un'istanza ShapedArray con un indice Int32 singolare.

    Per esempio:

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

    I sottoarray sono un intervallo contiguo di elementi in un ShapedArray . Il rango di un sottoarray è lo stesso della sua base, ma la sua dimensione iniziale è il conteggio dell'intervallo delle fette. Le sezioni di sottoarray si ottengono indicizzando un ShapedArray con un Range<Int32> che rappresenta un intervallo di elementi (nella dimensione principale). Anche metodi come prefix(:) e suffix(:) che indicizzano internamente con un intervallo producono un sottoarray.

    Per esempio:

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

    Dichiarazione

    @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 è un array multidimensionale i cui elementi sono String s.

    Dichiarazione

    @frozen
    public struct StringTensor
    extension StringTensor: TensorGroup
  • TensorHandle è il tipo utilizzato da ops. Include un tipo Scalar , che gli interni del compilatore possono utilizzare per determinare i tipi di dati dei parametri quando vengono estratti in un programma tensore.

    Dichiarazione

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

    public struct ResourceHandle
    extension ResourceHandle: TensorGroup
  • Dichiarazione

    public struct VariantHandle
    extension VariantHandle: TensorGroup
  • Una struttura che rappresenta la forma di un tensore.

    TensorShape è un sottile involucro attorno a una serie di numeri interi che rappresentano le dimensioni della forma. Tutti i tipi di tensore utilizzano TensorShape per rappresentare la loro forma.

    Dichiarazione

    @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 si avvicina a [WritableKeyPath<Base, Tensor<Float>] ma è più efficiente. Ciò è utile per scrivere ottimizzatori generici che desiderano mappare i gradienti, i pesi esistenti e un indice che può essere utilizzato per trovare pesi memorizzati ausiliari. Questo è leggermente più efficiente (~2x) ma potrebbe essere migliore perché compensa spese generali leggermente più elevate (dereferenziazione extra del puntatore) per non dover eseguire il lavoro O (profondità_of_tree) richiesto con un elenco semplice per rintracciare ogni singolo KeyPath.

    Dichiarazione

    public struct TensorVisitorPlan<Base>
  • Uno strato di sovracampionamento per ingressi 1-D.

    Dichiarazione

    @frozen
    public struct UpSampling1D<Scalar> : ParameterlessLayer where Scalar : TensorFlowFloatingPoint
  • Uno strato di sovracampionamento per ingressi 2-D.

    Dichiarazione

    @frozen
    public struct UpSampling2D<Scalar> : ParameterlessLayer where Scalar : TensorFlowFloatingPoint
  • Uno strato di sovracampionamento per ingressi 3-D.

    Dichiarazione

    @frozen
    public struct UpSampling3D<Scalar> : ParameterlessLayer where Scalar : TensorFlowFloatingPoint
  • Raccoglie i contatori di previsione corretti e i totali delle perdite.

    Dichiarazione

    public struct HostStatistics