Estructuras

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 a Differentiable y AdditiveArithmetic , 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 (como Int32 , Float , etc.).

    Declaración

    extension Tensor: ElementaryFunctions where Scalar: TensorFlowFloatingPoint
    @frozen
    public struct Tensor<Scalar> where Scalar : TensorFlowScalar
    extension Tensor: Collatable
    extension Tensor: CopyableToDevice
    marcador de
    extension Tensor: AnyTensor
    extension Tensor: ExpressibleByArrayLiteral
    extension Tensor: VectorProtocol where Scalar: TensorFlowFloatingPoint
    extension Tensor: CustomStringConvertible
    extension Tensor: CustomPlaygroundDisplayConvertible
    posición l10n18 marcador de posición l10n19 marcador de posición l10n20 marcador de
    extension Tensor: CustomReflectable
    de posición l10n22 l10n-
    extension Tensor: TensorGroup
    extension Tensor: TensorProtocol
    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
  • 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 de 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 en profundidad 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 en profundidad 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

    @frozen
    public struct BFloat16
    extension BFloat16: TensorFlowScalar
    extension BFloat16: XLAScalarType
  • 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ón activation(matmul(input, weight) + bias) , donde weight es una matriz de peso, bias es un vector de sesgo y activation es una función de activación por 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ón matmul(_:_:) , 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 modificar.

    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.

  • 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 de batchSize , a menos que Base.count % batchSize !=0 , en cuyo caso el count del último lote es base.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 a 1 .

    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 espacio-temporales.

    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 espacio-temporales.

    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 como object.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 un PyObject API de Python C.

    Declaración

    @dynamicCallable
    @dynamicMemberLookup
    public struct PythonObject
    marcador
    extension PythonObject : Hashable
    extension PythonObject : CustomStringConvertible
    extension PythonObject : CustomPlaygroundDisplayConvertible
    extension PythonObject : CustomReflectable
    extension PythonObject : PythonConvertible, ConvertibleFromPython
    extension PythonObject : MutableCollection
    extension PythonObject : SignedNumeric
    extension PythonObject : Strideable
    extension PythonObject : Equatable, Comparable
    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 que ThrowingPythonObject 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 dynamicallyCall 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 resultado Optional . Cuando falla el acceso de miembro, se devuelve nil .

    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 que PythonInterface se inicialice directamente. En su lugar, utilice la instancia global de PythonInterface llamada Python .

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

    Esta 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.pdf

    Esta 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

    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
  • 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 un TensorBuffer 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 ShapedArray o ShapedArraySlice .

    ShapedArraySlice permite operaciones rápidas y eficientes en sectores contiguos de instancias ShapedArray . Las instancias ShapedArraySlice no tienen su propio almacenamiento. En cambio, proporcionan una vista del almacenamiento de su ShapedArray 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 instancia ShapedArray con un índice Int32 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 un ShapedArray con un Range<Int32> que representa un rango de elementos (en la dimensión principal). Los métodos como prefix(:) y suffix(:) 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 son String s.

    Declaración

    @frozen
    public struct StringTensor
    extension StringTensor: TensorGroup
  • TensorHandle es el tipo utilizado por las operaciones. Incluye un tipo Scalar , que los componentes internos del compilador pueden utilizar 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 usan TensorShape 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