Las siguientes estructuras están disponibles a nivel mundial.
Una concatenación de dos secuencias con el mismo tipo de elemento.
Declaración
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 rotada de una colección.
Declaración
public struct RotatedCollection<Base> : Collection where Base : Collection
extension RotatedCollection: BidirectionalCollection where Base: BidirectionalCollection
extension RotatedCollection: RandomAccessCollection where Base: RandomAccessCollection
Declaración
public struct AnyDifferentiable : Differentiable
Un valor derivado de tipo borrado.
El tipo
AnyDerivative
reenvía sus operaciones a un valor derivado base subyacente arbitrario que se ajuste aDifferentiable
yAdditiveArithmetic
, ocultando los detalles del valor subyacente.Declaración
@frozen public struct AnyDerivative : Differentiable & AdditiveArithmetic
Una matriz multidimensional de elementos que es una generalización de vectores y matrices a dimensiones potencialmente superiores.
El parámetro genérico
Scalar
describe el tipo de escalares en el tensor (comoInt32
,Float
, etc.).Declaración
@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
Una función de retroceso que realiza la transposición de transmitir dos
Tensors
.Declaración
public struct BroadcastingPullback
Un contexto que almacena información contextual local de subprocesos utilizada por las API de aprendizaje profundo, como las capas.
Utilice
Context.local
para recuperar el contexto local del subproceso actual.Ejemplos:
- Establezca la fase de aprendizaje actual en entrenamiento para que capas como
BatchNorm
calculen la media y la varianza cuando se apliquen a las entradas.
Context.local.learningPhase = .training
- Establezca la fase de aprendizaje actual en inferencia para que capas como
Dropout
no eliminen unidades cuando se apliquen a las entradas.
Context.local.learningPhase = .inference
Declaración
public struct Context
- Establezca la fase de aprendizaje actual en entrenamiento para que capas como
Una capa de convolución unidimensional (por ejemplo, convolución temporal en una serie de tiempo).
Esta capa crea un filtro de convolución que convoluciona con la entrada de la capa para producir un tensor de salidas.
Declaración
@frozen public struct Conv1D<Scalar> : Layer where Scalar : TensorFlowFloatingPoint
Una capa de convolución 2-D (por ejemplo, convolución espacial sobre imágenes).
Esta capa crea un filtro de convolución que convoluciona con la entrada de la capa para producir un tensor de salidas.
Declaración
@frozen public struct Conv2D<Scalar> : Layer where Scalar : TensorFlowFloatingPoint
Una capa de convolución tridimensional para convolución espacial/espacio-temporal sobre imágenes.
Esta capa crea un filtro de convolución que convoluciona con la entrada de la capa para producir un tensor de salidas.
Declaración
@frozen public struct Conv3D<Scalar> : Layer where Scalar : TensorFlowFloatingPoint
Una capa de convolución transpuesta 1-D (por ejemplo, convolución transpuesta temporal sobre imágenes).
Esta capa crea un filtro de convolución que se transpone-convoluciona con la entrada de la capa para producir un tensor de salidas.
Declaración
@frozen public struct TransposedConv1D<Scalar> : Layer where Scalar : TensorFlowFloatingPoint
Una capa de convolución transpuesta 2-D (por ejemplo, convolución espacial transpuesta sobre imágenes).
Esta capa crea un filtro de convolución que se transpone-convoluciona con la entrada de la capa para producir un tensor de salidas.
Declaración
@frozen public struct TransposedConv2D<Scalar> : Layer where Scalar : TensorFlowFloatingPoint
Una capa de convolución transpuesta tridimensional (por ejemplo, convolución transpuesta espacial sobre imágenes).
Esta capa crea un filtro de convolución que se transpone-convoluciona con la entrada de la capa para producir un tensor de salidas.
Declaración
@frozen public struct TransposedConv3D<Scalar> : Layer where Scalar : TensorFlowFloatingPoint
Una capa de convolución profunda 2-D.
Esta capa crea filtros de convolución separables que se convolucionan con la entrada de la capa para producir un tensor de salidas.
Declaración
@frozen public struct DepthwiseConv2D<Scalar> : Layer where Scalar : TensorFlowFloatingPoint
Una capa para agregar relleno con ceros en la dimensión temporal.
Declaración
public struct ZeroPadding1D<Scalar> : ParameterlessLayer where Scalar : TensorFlowFloatingPoint
Una capa para agregar relleno de ceros en las dimensiones espaciales.
Declaración
public struct ZeroPadding2D<Scalar> : ParameterlessLayer where Scalar : TensorFlowFloatingPoint
Una capa para agregar relleno de ceros en las dimensiones espaciales/espacio-temporales.
Declaración
public struct ZeroPadding3D<Scalar> : ParameterlessLayer where Scalar : TensorFlowFloatingPoint
Una capa de convolución separable 1-D.
Esta capa realiza una convolución profunda que actúa por separado en los canales seguida de una convolución puntual que mezcla canales.
Declaración
@frozen public struct SeparableConv1D<Scalar> : Layer where Scalar : TensorFlowFloatingPoint
Una capa de convolución separable en 2-D.
Esta capa realiza una convolución profunda que actúa por separado en los canales seguida de una convolución puntual que mezcla canales.
Declaración
@frozen public struct SeparableConv2D<Scalar> : Layer where Scalar : TensorFlowFloatingPoint
Una capa aplanada.
Una capa aplanada aplana la entrada cuando se aplica sin afectar el tamaño del lote.
Declaración
@frozen public struct Flatten<Scalar> : ParameterlessLayer where Scalar : TensorFlowFloatingPoint
Una capa de remodelación.
Declaración
@frozen public struct Reshape<Scalar> : ParameterlessLayer where Scalar : TensorFlowFloatingPoint
Una capa que encierra una función diferenciable personalizada.
Declaración
public struct Function<Input, Output> : ParameterlessLayer where Input : Differentiable, Output : Differentiable
Un valor de tipo dinámico de TensorFlow que se puede crear a partir de tipos que se ajustan a
TensorFlowScalar
.Declaración
public struct TensorDataType : Equatable
Declaración
Representa un conjunto potencialmente grande de elementos.
Se puede utilizar un
Dataset
para representar una canalización de entrada como una colección de tensores de elementos.Declaración
@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
El tipo que permite la iteración sobre los elementos de un conjunto de datos.
Declaración
@available(*, deprecated) @frozen public struct DatasetIterator<Element> where Element : TensorGroup
extension DatasetIterator: IteratorProtocol
Una estructura similar a 2 tuplas que se ajusta a TensorGroup y que representa una tupla de 2 tipos que se ajusta a
TensorGroup
.Declaración
@frozen public struct Zip2TensorGroup<T, U> : TensorGroup where T : TensorGroup, U : TensorGroup
Una capa de red neuronal densamente conectada.
Dense
implementa la operaciónactivation(matmul(input, weight) + bias)
, dondeweight
es una matriz de peso,bias
es un vector de sesgo yactivation
es una función de activación de elementos.Esta capa también admite tensores de peso tridimensionales con matrices de polarización bidimensionales. En este caso, la primera dimensión de ambos se trata como el tamaño de lote que está alineado con la primera dimensión de
input
y se utiliza la variante de lote de la operaciónmatmul(_:_:)
, utilizando así un peso y un sesgo diferentes para cada elemento. en lote de entrada.Declaración
@frozen public struct Dense<Scalar> : Layer where Scalar : TensorFlowFloatingPoint
Un dispositivo en el que se pueden asignar
Tensor
s.Declaración
public struct Device
extension Device: Equatable
extension Device: CustomStringConvertible
Una capa de abandono.
El abandono consiste en establecer aleatoriamente una fracción de unidades de entrada en
0
en cada actualización durante el tiempo de entrenamiento, lo que ayuda a evitar el sobreajuste.Declaración
@frozen public struct Dropout<Scalar> : ParameterlessLayer where Scalar : TensorFlowFloatingPoint
GaussianNoise
agrega ruido muestreado a partir de una distribución normal.El ruido agregado siempre tiene media cero, pero tiene una desviación estándar configurable.
Declaración
public struct GaussianNoise<Scalar> : ParameterlessLayer where Scalar : TensorFlowFloatingPoint
GaussianDropout
multiplica la entrada con el ruido muestreado de una distribución normal con media 1,0.Debido a que se trata de una capa de regularización, solo está activa durante el tiempo de entrenamiento. Durante la inferencia,
GaussianDropout
pasa a través de la entrada sin modificaciones.Declaración
public struct GaussianDropout<Scalar> : ParameterlessLayer where Scalar : TensorFlowFloatingPoint
Una capa de abandono Alfa.
Alpha Dropout es un
Dropout
que mantiene la media y la varianza de las entradas en sus valores originales, para garantizar la propiedad de autonormalización incluso después de este abandono. La caída alfa se adapta bien a las unidades lineales exponenciales escaladas al establecer activaciones aleatoriamente en el valor de saturación negativo.Fuente: Redes neuronales autonormalizadas: https://arxiv.org/abs/1706.02515
Declaración
@frozen public struct AlphaDropout<Scalar> : ParameterlessLayer where Scalar : TensorFlowFloatingPoint
Una capa de incrustación.
Embedding
es efectivamente una tabla de búsqueda que asigna índices de un vocabulario fijo a representaciones vectoriales de tamaño fijo (densas), por ejemplo[[0], [3]] -> [[0.25, 0.1], [0.6, -0.2]]
.Declaración
public struct Embedding<Scalar> : Module where Scalar : TensorFlowFloatingPoint
Una estructura vacía que representa
TangentVector
vacíos para capas sin parámetros.Declaración
public struct EmptyTangentVector: EuclideanDifferentiable, VectorProtocol, ElementaryFunctions, PointwiseMultiplicative, KeyPathIterable
Par de momentos primero y segundo (es decir, media y varianza).
Nota
Esto es necesario porque los tipos de tuplas no son diferenciables.Declaración
public struct Moments<Scalar> : Differentiable where Scalar : TensorFlowFloatingPoint
Una capa de dilatación morfológica 2-D.
Esta capa devuelve la dilatación morfológica del tensor de entrada con los filtros proporcionados.
Declaración
@frozen public struct Dilation2D<Scalar> : Layer where Scalar : TensorFlowFloatingPoint
Una capa de erosión morfológica 2-D
Esta capa devuelve la erosión morfológica del tensor de entrada con los filtros proporcionados.
Declaración
@frozen public struct Erosion2D<Scalar> : Layer where Scalar : TensorFlowFloatingPoint
Una selección diferida de elementos, en un orden determinado, de alguna colección base.
Declaración
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 colección de los sectores contiguos más largos que no se superponen de alguna colección
Base
, que comienza con su primer elemento y tiene una longitud máxima fija.Todos los elementos de esta colección, excepto el último, tienen un
count
debatchSize
, a menos queBase.count % batchSize !=0
, en cuyo caso elcount
del último lote esbase.count % batchSize.
Declaración
public struct Slices<Base> where Base : Collection
extension Slices: Collection
Una capa de normalización por lotes.
Normaliza las activaciones de la capa anterior en cada lote, es decir, aplica una transformación que mantiene la activación media cercana a
0
y la desviación estándar de activación cercana a1
.Referencia: Normalización de lotes: aceleración del entrenamiento profundo de la red reduciendo el cambio de covariables interno .
Declaración
@frozen public struct BatchNorm<Scalar> : Layer where Scalar : TensorFlowFloatingPoint
Una capa que aplica la normalización de capas sobre un mini lote de entradas.
Referencia: Normalización de capas .
Declaración
@frozen public struct LayerNorm<Scalar> : Layer where Scalar : TensorFlowFloatingPoint
Una capa que aplica la normalización de grupo sobre un mini lote de entradas.
Referencia: Normalización de grupos .
Declaración
@frozen public struct GroupNorm<Scalar> : Layer where Scalar : TensorFlowFloatingPoint
Una capa que aplica la normalización de instancias sobre un mini lote de entradas.
Referencia: Normalización de instancias: el ingrediente que falta para una estilización rápida .
Declaración
@frozen public struct InstanceNorm<Scalar> : Layer where Scalar : TensorFlowFloatingPoint
Estado para un solo paso de un solo peso dentro de un optimizador.
Declaración
public struct OptimizerWeightStepState
Estado global al que se accede a través de
StateAccessor
.Declaración
public struct OptimizerState
[String: Float]
pero se puede acceder a los elementos como si fueran miembros.Declaración
@dynamicMemberLookup public struct HyperparameterDictionary
Un optimizador que funciona en un solo grupo de parámetros.
Declaración
public struct ParameterGroupOptimizer
Un contenedor con seguridad de tipos alrededor de un valor de índice
Int
para valores locales del optimizador.Declaración
public struct LocalAccessor
Un contenedor con seguridad de tipos alrededor de un valor de índice
Int
para valores globales del optimizador.Declaración
public struct GlobalAccessor
Un contenedor con seguridad de tipos alrededor de un valor de índice
Int
para valores de estado del optimizador.Declaración
public struct StateAccessor
Crea un
ParameterGroupOptimizer
. Esto se utiliza esencialmente al nivel de un solo peso en el modelo. Una asignación de grupos de parámetros seleccionados por ([Bool]
a ParameterGroupOptimizer) define el optimizador final.Declaración
public struct ParameterGroupOptimizerBuilder
Una capa de agrupación máxima para datos temporales.
Declaración
@frozen public struct MaxPool1D<Scalar> : ParameterlessLayer where Scalar : TensorFlowFloatingPoint
Una capa de agrupación máxima para datos espaciales.
Declaración
@frozen public struct MaxPool2D<Scalar> : ParameterlessLayer where Scalar : TensorFlowFloatingPoint
Una capa de agrupación máxima para datos espaciales o espaciotemporales.
Declaración
@frozen public struct MaxPool3D<Scalar> : ParameterlessLayer where Scalar : TensorFlowFloatingPoint
Una capa de agrupación promedio para datos temporales.
Declaración
@frozen public struct AvgPool1D<Scalar> : ParameterlessLayer where Scalar : TensorFlowFloatingPoint
Una capa de agrupación promedio para datos espaciales.
Declaración
@frozen public struct AvgPool2D<Scalar> : ParameterlessLayer where Scalar : TensorFlowFloatingPoint
Una capa de agrupación promedio para datos espaciales o espaciotemporales.
Declaración
@frozen public struct AvgPool3D<Scalar> : ParameterlessLayer where Scalar : TensorFlowFloatingPoint
Una capa de agrupación promedio global para datos temporales.
Declaración
@frozen public struct GlobalAvgPool1D<Scalar> : ParameterlessLayer where Scalar : TensorFlowFloatingPoint
Una capa de agrupación promedio global para datos espaciales.
Declaración
@frozen public struct GlobalAvgPool2D<Scalar> : ParameterlessLayer where Scalar : TensorFlowFloatingPoint
Una capa de agrupación promedio global para datos espaciales y espaciotemporales.
Declaración
@frozen public struct GlobalAvgPool3D<Scalar> : ParameterlessLayer where Scalar : TensorFlowFloatingPoint
Una capa de agrupación máxima global para datos temporales.
Declaración
@frozen public struct GlobalMaxPool1D<Scalar> : ParameterlessLayer where Scalar : TensorFlowFloatingPoint
Una capa de agrupación máxima global para datos espaciales.
Declaración
@frozen public struct GlobalMaxPool2D<Scalar> : ParameterlessLayer where Scalar : TensorFlowFloatingPoint
Una capa de agrupación máxima global para datos espaciales y espaciotemporales.
Declaración
@frozen public struct GlobalMaxPool3D<Scalar> : ParameterlessLayer where Scalar : TensorFlowFloatingPoint
Una capa de agrupación máxima fraccionada para datos espaciales. Nota:
FractionalMaxPool
no tiene una implementación XLA y, por lo tanto, puede tener implicaciones en el rendimiento.Declaración
@frozen public struct FractionalMaxPool2D<Scalar> : ParameterlessLayer where Scalar : TensorFlowFloatingPoint
PythonObject
representa un objeto en Python y admite la búsqueda dinámica de miembros. Cualquier acceso de miembro comoobject.foo
solicitará dinámicamente el tiempo de ejecución de Python para un miembro con el nombre especificado en este objeto.PythonObject
se pasa y devuelve desde todas las llamadas a funciones de Python y referencias de miembros. Admite operadores aritméticos y de comparación estándar de Python.Internamente,
PythonObject
se implementa como un puntero contado por referencia a unPyObject
API de Python C.Declaración
@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
Un contenedor
PythonObject
que permite lanzar llamadas a métodos. Las excepciones producidas por las funciones de Python se reflejan como errores de Swift y se lanzan.Nota
Es intencional queThrowingPythonObject
no tenga el atributo@dynamicCallable
porque la sintaxis de la llamada no es intuitiva:x.throwing(arg1, arg2, ...)
. Los métodos seguirán teniendo el nombre de LlamadadynamicallyCall
hasta que se discuta o diseñe más.Declaración
public struct ThrowingPythonObject
Un contenedor
PythonObject
que permite el acceso de miembros. Las operaciones de acceso a miembros devuelven un resultadoOptional
. Cuando falla el acceso de miembro, se devuelvenil
.Declaración
@dynamicMemberLookup public struct CheckingPythonObject
Una interfaz para Python.
PythonInterface
permite la interacción con Python. Se puede utilizar para importar módulos y acceder dinámicamente a tipos y funciones integrados de Python.Nota
No está previsto quePythonInterface
se inicialice directamente. En su lugar, utilice la instancia global dePythonInterface
llamadaPython
.Declaración
@dynamicMemberLookup public struct PythonInterface
Declaración
public struct PythonLibrary
Un generador de números aleatorios con tipo borrado.
El tipo
AnyRandomNumberGenerator
reenvía operaciones de generación de números aleatorios a un generador de números aleatorios subyacente, ocultando su tipo subyacente específico.Declaración
public struct AnyRandomNumberGenerator : RandomNumberGenerator
Una implementación de
SeedableRandomNumberGenerator
usando ARC4.ARC4 es un cifrado de flujo que genera un flujo de bytes pseudoaleatorio. Este PRNG utiliza la semilla como clave.
ARC4 se describe en Schneier, B., “Applied Cryptography: Protocols, Algorithms, and Source Code in C”, 2ª edición, 1996.
Un generador individual no es seguro para subprocesos, pero los distintos generadores no comparten el estado. Los datos aleatorios generados son de alta calidad, pero no son adecuados para aplicaciones criptográficas.
Declaración
@frozen public struct ARC4RandomNumberGenerator : SeedableRandomNumberGenerator
Una implementación de
SeedableRandomNumberGenerator
usando Threefry. Salmón y col. SC 2011. Números aleatorios paralelos: tan fácil como 1, 2, 3. http://www.thesalmons.org/john/random123/papers/random123sc11.pdfEsta estructura implementa un PRNG Threefry2x32 de 20 rondas. Debe estar inicializado con un valor de 64 bits.
Un generador individual no es seguro para subprocesos, pero los distintos generadores no comparten el estado. Los datos aleatorios generados son de alta calidad, pero no son adecuados para aplicaciones criptográficas.
Declaración
public struct ThreefryRandomNumberGenerator : SeedableRandomNumberGenerator
Una implementación de
SeedableRandomNumberGenerator
usando Philox. Salmón y col. SC 2011. Números aleatorios paralelos: tan fácil como 1, 2, 3. http://www.thesalmons.org/john/random123/papers/random123sc11.pdfEsta estructura implementa un PRNG Philox4x32 de 10 rondas. Debe estar inicializado con un valor de 64 bits.
Un generador individual no es seguro para subprocesos, pero los distintos generadores no comparten el estado. Los datos aleatorios generados son de alta calidad, pero no son adecuados para aplicaciones criptográficas.
Declaración
public struct PhiloxRandomNumberGenerator : SeedableRandomNumberGenerator
Declaración
@frozen public struct UniformIntegerDistribution<T> : RandomDistribution where T : FixedWidthInteger
Declaración
@frozen public struct UniformFloatingPointDistribution<T: BinaryFloatingPoint>: RandomDistribution where T.RawSignificand: FixedWidthInteger
Declaración
@frozen public struct NormalDistribution<T: BinaryFloatingPoint>: RandomDistribution where T.RawSignificand: FixedWidthInteger
Declaración
@frozen public struct BetaDistribution : RandomDistribution
Una entrada a una red neuronal recurrente.
Declaración
public struct RNNCellInput<Input, State> : Differentiable where Input : Differentiable, State : Differentiable
extension RNNCellInput: EuclideanDifferentiable where Input: EuclideanDifferentiable, State: EuclideanDifferentiable
Una salida a una red neuronal recurrente.
Declaración
public struct RNNCellOutput<Output, State> : Differentiable where Output : Differentiable, State : Differentiable
extension RNNCellOutput: EuclideanDifferentiable where Output: EuclideanDifferentiable, State: EuclideanDifferentiable
Una celda RNN básica.
Declaración
public struct BasicRNNCell<Scalar> : RecurrentLayerCell where Scalar : TensorFlowFloatingPoint
Una celda LSTM.
Declaración
public struct LSTMCell<Scalar> : RecurrentLayerCell where Scalar : TensorFlowFloatingPoint
Una célula GRU.
Declaración
public struct GRUCell<Scalar> : RecurrentLayerCell where Scalar : TensorFlowFloatingPoint
Declaración
public struct RecurrentLayer<Cell> : Layer where Cell : RecurrentLayerCell
extension RecurrentLayer: Equatable where Cell: Equatable
extension RecurrentLayer: AdditiveArithmetic where Cell: AdditiveArithmetic
Declaración
public struct BidirectionalRecurrentLayer<Cell: RecurrentLayerCell>: Layer where Cell.TimeStepOutput: Mergeable
Una capa que compone secuencialmente dos o más capas.
Ejemplos:
- Construya un modelo de perceptrón simple de 2 capas para 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) }
- Cree un codificador automático para 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) }
Declaración
@_functionBuilder public struct LayerBuilder
ShapedArray
es una matriz multidimensional. Tiene una forma, que es de tipo[Int]
y define las dimensiones de la matriz, y utiliza unTensorBuffer
internamente como almacenamiento.Declaración
@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
Un segmento contiguo de una instancia de
ShapedArray
oShapedArraySlice
.ShapedArraySlice
permite operaciones rápidas y eficientes en sectores contiguos de instancias deShapedArray
. Las instanciasShapedArraySlice
no tienen su propio almacenamiento. En cambio, proporcionan una vista del almacenamiento de suShapedArray
base.ShapedArraySlice
puede representar dos tipos diferentes de sectores: matrices y subarreglos de elementos.Las matrices de elementos son elementos subdimensionales de
ShapedArray
: su rango es uno menos que el de su base. Los sectores de la matriz de elementos se obtienen indexando una instanciaShapedArray
con un índiceInt32
singular.Por ejemplo:
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]].
Los subarreglos son un rango contiguo de elementos en un
ShapedArray
. El rango de un subarreglo es el mismo que el de su base, pero su dimensión principal es el recuento del rango de corte. Los sectores de subarreglo se obtienen indexando unShapedArray
con unRange<Int32>
que representa un rango de elementos (en la dimensión principal). Los métodos comoprefix(:)
ysuffix(:)
que indexan internamente con un rango también producen un subarreglo.Por ejemplo:
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]].
Declaración
@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
es una matriz multidimensional cuyos elementos sonString
s.Declaración
@frozen public struct StringTensor
extension StringTensor: TensorGroup
TensorHandle
es el tipo utilizado por las operaciones. Incluye un tipoScalar
, que los componentes internos del compilador pueden usar para determinar los tipos de datos de los parámetros cuando se extraen en un programa tensorial.Declaración
public struct TensorHandle<Scalar> where Scalar : _TensorFlowDataTypeCompatible
extension TensorHandle: TensorGroup
Declaración
public struct ResourceHandle
extension ResourceHandle: TensorGroup
Declaración
public struct VariantHandle
extension VariantHandle: TensorGroup
Una estructura que representa la forma de un tensor.
TensorShape
es una envoltura delgada alrededor de una matriz de números enteros que representan dimensiones de forma. Todos los tipos de tensores usanTensorShape
para representar su forma.Declaración
@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 se aproxima a
[WritableKeyPath<Base, Tensor<Float>]
pero es más eficiente. Esto es útil para escribir optimizadores genéricos que quieran mapear los gradientes, los pesos existentes y un índice que pueda usarse para encontrar pesos almacenados de forma auxiliar. Esto es un poco más eficiente (~2x), pero podría ser mejor porque compensa gastos generales ligeramente más altos (desreferencia de puntero adicional) por no tener que realizar el trabajo O(profundidad_del_árbol) que se requiere con una lista simple para rastrear cada ruta clave individual.Declaración
public struct TensorVisitorPlan<Base>
Una capa de muestreo superior para entradas 1-D.
Declaración
@frozen public struct UpSampling1D<Scalar> : ParameterlessLayer where Scalar : TensorFlowFloatingPoint
Una capa de muestreo superior para entradas 2-D.
Declaración
@frozen public struct UpSampling2D<Scalar> : ParameterlessLayer where Scalar : TensorFlowFloatingPoint
Una capa de muestreo superior para entradas 3D.
Declaración
@frozen public struct UpSampling3D<Scalar> : ParameterlessLayer where Scalar : TensorFlowFloatingPoint
Recopila contadores de predicción correctos y totales de pérdidas.
Declaración
public struct HostStatistics