Estruturas

As seguintes estruturas estão disponíveis globalmente.

  • Uma concatenação de duas sequências com o mesmo tipo de elemento.

    Declaração

    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
  • Uma visão girada em uma coleção.

    Declaração

    public struct RotatedCollection<Base> : Collection where Base : Collection
    extension RotatedCollection: BidirectionalCollection
    where Base: BidirectionalCollection
    extension RotatedCollection: RandomAccessCollection
    where Base: RandomAccessCollection
  • Declaração

    public struct AnyDifferentiable : Differentiable
  • Um valor derivado apagado de tipo.

    O AnyDerivative tipo encaminha suas operações para uma base subjacente valor derivado arbitrário em conformidade com Differentiable e AdditiveArithmetic , que escondem as especificidades do valor subjacente.

    Declaração

    @frozen
    public struct AnyDerivative : Differentiable & AdditiveArithmetic
  • Um array multidimensional de elementos que é uma generalização de vetores e matrizes para dimensões potencialmente mais altas.

    O parâmetro genérico Scalar descreve o tipo de escalares do tensor (tais como Int32 , Float , etc).

    Declaração

    @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
  • Uma função de recuo que realiza a transposição de radiodifusão dois Tensors .

    Declaração

    public struct BroadcastingPullback
  • Um contexto que armazena informações contextuais de thread local usadas por APIs de aprendizado profundo, como camadas.

    Use Context.local para recuperar o contexto de segmento local atual.

    Exemplos:

    • Defina a fase de aprendizagem atual para treinar de modo que as camadas como BatchNorm irá calcular média e variância quando aplicada aos insumos.
      Context.local.learningPhase = .training
    
    • Defina a fase de aprendizagem atual à inferência de modo que as camadas como Dropout não vai cair fora unidades quando aplicada aos insumos.
      Context.local.learningPhase = .inference
    

    Declaração

    public struct Context
  • Uma camada de convolução 1-D (por exemplo, convolução temporal ao longo de uma série temporal).

    Essa camada cria um filtro de convolução que é convolvido com a entrada da camada para produzir um tensor de saídas.

    Declaração

    @frozen
    public struct Conv1D<Scalar> : Layer where Scalar : TensorFlowFloatingPoint
  • Uma camada de convolução 2-D (por exemplo, convolução espacial sobre imagens).

    Esta camada cria um filtro de convolução que é convolvido com a entrada da camada para produzir um tensor de saídas.

    Declaração

    @frozen
    public struct Conv2D<Scalar> : Layer where Scalar : TensorFlowFloatingPoint
  • Uma camada de convolução 3-D para convolução espaço / espaço-temporal sobre imagens.

    Essa camada cria um filtro de convolução que é convolvido com a entrada da camada para produzir um tensor de saídas.

    Declaração

    @frozen
    public struct Conv3D<Scalar> : Layer where Scalar : TensorFlowFloatingPoint
  • Uma camada de convolução transposta 1-D (por exemplo, convolução transposta temporal sobre imagens).

    Essa camada cria um filtro de convolução que é transposto-convolvido com a entrada da camada para produzir um tensor de saídas.

    Declaração

    @frozen
    public struct TransposedConv1D<Scalar> : Layer where Scalar : TensorFlowFloatingPoint
  • Uma camada de convolução transposta 2-D (por exemplo, convolução transposta espacial sobre imagens).

    Essa camada cria um filtro de convolução que é transposto-convolvido com a entrada da camada para produzir um tensor de saídas.

    Declaração

    @frozen
    public struct TransposedConv2D<Scalar> : Layer where Scalar : TensorFlowFloatingPoint
  • Uma camada de convolução transposta 3-D (por exemplo, convolução transposta espacial sobre imagens).

    Essa camada cria um filtro de convolução que é transposto-convolvido com a entrada da camada para produzir um tensor de saídas.

    Declaração

    @frozen
    public struct TransposedConv3D<Scalar> : Layer where Scalar : TensorFlowFloatingPoint
  • Uma camada de convolução em profundidade 2-D.

    Esta camada cria filtros de convolução separáveis ​​que são convolvidos com a entrada da camada para produzir um tensor de saídas.

    Declaração

    @frozen
    public struct DepthwiseConv2D<Scalar> : Layer where Scalar : TensorFlowFloatingPoint
  • Uma camada para adicionar preenchimento de zero na dimensão temporal.

    Declaração

    public struct ZeroPadding1D<Scalar> : ParameterlessLayer where Scalar : TensorFlowFloatingPoint
  • Uma camada para adicionar preenchimento de zero nas dimensões espaciais.

    Declaração

    public struct ZeroPadding2D<Scalar> : ParameterlessLayer where Scalar : TensorFlowFloatingPoint
  • Uma camada para adicionar preenchimento de zero nas dimensões espaciais / espaço-temporais.

    Declaração

    public struct ZeroPadding3D<Scalar> : ParameterlessLayer where Scalar : TensorFlowFloatingPoint
  • Uma camada de convolução separável 1-D.

    Essa camada realiza uma convolução em profundidade que atua separadamente nos canais, seguida por uma convolução pontual que mistura canais.

    Declaração

    @frozen
    public struct SeparableConv1D<Scalar> : Layer where Scalar : TensorFlowFloatingPoint
  • Uma camada de convolução separável 2-D.

    Essa camada realiza uma convolução em profundidade que atua separadamente nos canais, seguida por uma convolução pontual que mistura canais.

    Declaração

    @frozen
    public struct SeparableConv2D<Scalar> : Layer where Scalar : TensorFlowFloatingPoint
  • Uma camada achatada.

    Uma camada achatada achatará a entrada quando aplicada sem afetar o tamanho do lote.

    Declaração

    @frozen
    public struct Flatten<Scalar> : ParameterlessLayer where Scalar : TensorFlowFloatingPoint
  • Uma camada de remodelagem.

    Declaração

    @frozen
    public struct Reshape<Scalar> : ParameterlessLayer where Scalar : TensorFlowFloatingPoint
  • Uma camada que contém uma função diferenciada personalizada.

    Declaração

    public struct Function<Input, Output> : ParameterlessLayer where Input : Differentiable, Output : Differentiable
  • A TensorFlow valor de tipo dinâmico que pode ser criado a partir de tipos que estejam em conformidade com TensorFlowScalar .

    Declaração

    public struct TensorDataType : Equatable
  • Declaração

    @frozen
    public struct BFloat16
    extension BFloat16: TensorFlowScalar
    extension BFloat16: XLAScalarType
  • Representa um conjunto potencialmente grande de elementos.

    Um Dataset pode ser utilizado para representar uma tubagem de entrada como uma série de elementos tensores.

    Declaração

    @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
  • O tipo que permite a iteração sobre os elementos de um conjunto de dados.

    Declaração

    @available(*, deprecated)
    @frozen
    public struct DatasetIterator<Element> where Element : TensorGroup
    extension DatasetIterator: IteratorProtocol
  • A estrutura 2-tupla-like em conformidade com TensorGroup que representa uma tupla de 2 tipos em conformidade com TensorGroup .

    Declaração

    @frozen
    public struct Zip2TensorGroup<T, U> : TensorGroup where T : TensorGroup, U : TensorGroup
  • Uma camada de rede neural densamente conectada.

    Dense implementa a operação activation(matmul(input, weight) + bias) , onde weight é uma matriz de ponderação, bias é um vector de polarização, e activation é uma função de activação elemento a elemento.

    Esta camada também suporta tensores de peso 3-D com matrizes de polarização 2-D. Neste caso, a primeira dimensão de ambos é tratado como o tamanho do lote que está alinhada com a primeira dimensão de input e a variante do lote do matmul(_:_:) operação é usado, utilizando, assim, um peso e polarização diferente para cada elemento no lote de entrada.

    Declaração

    @frozen
    public struct Dense<Scalar> : Layer where Scalar : TensorFlowFloatingPoint
  • Um dispositivo no qual Tensor s podem ser alocados.

    Declaração

    public struct Device
    extension Device: Equatable
    extension Device: CustomStringConvertible
  • Uma camada de eliminação.

    Dropout, consiste em fixar de forma aleatória uma fracção de unidades de entrada a 0 em cada actualização durante o tempo de formação, o que ajuda a evitar overfitting.

    Declaração

    @frozen
    public struct Dropout<Scalar> : ParameterlessLayer where Scalar : TensorFlowFloatingPoint
  • GaussianNoise adiciona ruído amostrados de uma distribuição normal.

    O ruído adicionado sempre tem média zero, mas tem um desvio padrão configurável.

    Declaração

    public struct GaussianNoise<Scalar> : ParameterlessLayer where Scalar : TensorFlowFloatingPoint
  • GaussianDropout multiplica a entrada com o ruído amostrado a partir de uma distribuição normal com média 1,0.

    Por ser uma camada de regularização, ela só fica ativa durante o tempo de treinamento. Durante inferência, GaussianDropout passa através da entrada não modificado.

    Declaração

    public struct GaussianDropout<Scalar> : ParameterlessLayer where Scalar : TensorFlowFloatingPoint
  • Uma camada de eliminação alfa.

    Alpha Dropout é um Dropout que mantém média e variância de entradas para os valores originais, a fim de garantir a propriedade auto-normalizando, mesmo após este abandono. Alpha Dropout ajusta-se bem a unidades lineares exponenciais em escala, configurando ativações aleatoriamente para o valor de saturação negativo.

    Fonte: Auto-Normalizing Neural Networks: https://arxiv.org/abs/1706.02515

    Declaração

    @frozen
    public struct AlphaDropout<Scalar> : ParameterlessLayer where Scalar : TensorFlowFloatingPoint
  • Uma camada de incorporação.

    Embedding é efectivamente uma tabela de pesquisa que mapeia índices a partir de um vocabulário fixo às representações vetor de tamanho fixo (densa), por exemplo, [[0], [3]] -> [[0.25, 0.1], [0.6, -0.2]] .

    Declaração

    public struct Embedding<Scalar> : Module where Scalar : TensorFlowFloatingPoint
  • Uma estrutura vazia representando vazio TangentVector s para camadas sem parâmetros.

  • Par de primeiro e segundo momentos (ou seja, média e variância).

    Observação

    Isso é necessário porque os tipos de tupla não são diferenciáveis.

    Declaração

    public struct Moments<Scalar> : Differentiable where Scalar : TensorFlowFloatingPoint
  • Uma camada de dilatação morfológica 2-D

    Esta camada retorna a dilatação morfógica do tensor de entrada com os filtros fornecidos

    Declaração

    @frozen
    public struct Dilation2D<Scalar> : Layer where Scalar : TensorFlowFloatingPoint
  • Uma camada de erosão morfológica 2-D

    Esta camada retorna a erosão morfógica do tensor de entrada com os filtros fornecidos

    Declaração

    @frozen
    public struct Erosion2D<Scalar> : Layer where Scalar : TensorFlowFloatingPoint
  • Uma seleção preguiçosa de elementos, em uma determinada ordem, de alguma coleção de base.

    Declaração

    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
  • Uma série dos mais longa que não se sobrepõem cortes contíguos de uma Base recolha, começando com o primeiro elemento, e tendo alguns comprimento máximo fixo.

    Os elementos desta coleção, com exceção do último, todos têm uma count de batchSize , a menos que Base.count % batchSize !=0 , caso em que o último lote count é base.count % batchSize.

    Declaração

    public struct Slices<Base> where Base : Collection
    extension Slices: Collection
  • Uma camada de normalização em lote.

    Normaliza as activações da camada anterior, em cada lote, isto é, aplica-se uma transformação que mantém a activação perto significativo a 0 e o desvio padrão de activação perto de 1 .

    Referência: Lote Normalização: Acelerar Rede de Formação profundo por Redução de covariáveis Interna de Deslocamento .

    Declaração

    @frozen
    public struct BatchNorm<Scalar> : Layer where Scalar : TensorFlowFloatingPoint
  • Uma camada que aplica a normalização de camada em um minilote de entradas.

    Referência: Camada de Normalização .

    Declaração

    @frozen
    public struct LayerNorm<Scalar> : Layer where Scalar : TensorFlowFloatingPoint
  • Uma camada que aplica a normalização de grupo em um minilote de entradas.

    Referência: Grupo A normalização .

    Declaração

    @frozen
    public struct GroupNorm<Scalar> : Layer where Scalar : TensorFlowFloatingPoint
  • Uma camada que aplica a normalização de instância em um minilote de entradas.

    Referência: Instância Normalização: o ingrediente que falta para estilização rápido .

    Declaração

    @frozen
    public struct InstanceNorm<Scalar> : Layer where Scalar : TensorFlowFloatingPoint
  • Estado para uma única etapa de um único peso dentro de um otimizador.

    Declaração

    public struct OptimizerWeightStepState
  • Estado global acessado através StateAccessor .

    Declaração

    public struct OptimizerState
  • [String: Float] , mas elementos podem ser acessados como se fossem membros.

    Declaração

    @dynamicMemberLookup
    public struct HyperparameterDictionary
  • Um otimizador que funciona em um único grupo de parâmetros.

    Declaração

    public struct ParameterGroupOptimizer
  • Um wrapper de tipo seguro em torno de um Int valor do índice para o otimizador de valores locais.

    Declaração

    public struct LocalAccessor
  • Um wrapper de tipo seguro em torno de um Int valor do índice para o otimizador de valores globais.

    Declaração

    public struct GlobalAccessor
  • Um invólucro de tipo seguro em torno de uma Int valor de índice para valores de estado optimizador.

    Declaração

    public struct StateAccessor
  • Constrói uma ParameterGroupOptimizer . Isso é usado essencialmente no nível de um único peso no modelo. Um mapeamento a partir de grupos de parâmetros seleccionados por ( [Bool] para ParameterGroupOptimizer) define o optimizador final.

    Declaração

    public struct ParameterGroupOptimizerBuilder
  • Uma camada de pooling máxima para dados temporais.

    Declaração

    @frozen
    public struct MaxPool1D<Scalar> : ParameterlessLayer where Scalar : TensorFlowFloatingPoint
  • Uma camada de pooling máxima para dados espaciais.

    Declaração

    @frozen
    public struct MaxPool2D<Scalar> : ParameterlessLayer where Scalar : TensorFlowFloatingPoint
  • Uma camada de pooling máxima para dados espaciais ou espaço-temporais.

    Declaração

    @frozen
    public struct MaxPool3D<Scalar> : ParameterlessLayer where Scalar : TensorFlowFloatingPoint
  • Uma camada de agrupamento média para dados temporais.

    Declaração

    @frozen
    public struct AvgPool1D<Scalar> : ParameterlessLayer where Scalar : TensorFlowFloatingPoint
  • Uma camada de agrupamento média para dados espaciais.

    Declaração

    @frozen
    public struct AvgPool2D<Scalar> : ParameterlessLayer where Scalar : TensorFlowFloatingPoint
  • Uma camada de agrupamento média para dados espaciais ou espaço-temporais.

    Declaração

    @frozen
    public struct AvgPool3D<Scalar> : ParameterlessLayer where Scalar : TensorFlowFloatingPoint
  • Uma camada de agrupamento média global para dados temporais.

    Declaração

    @frozen
    public struct GlobalAvgPool1D<Scalar> : ParameterlessLayer where Scalar : TensorFlowFloatingPoint
  • Uma camada de agrupamento de média global para dados espaciais.

    Declaração

    @frozen
    public struct GlobalAvgPool2D<Scalar> : ParameterlessLayer where Scalar : TensorFlowFloatingPoint
  • Uma camada de agrupamento média global para dados espaciais e espaço-temporais.

    Declaração

    @frozen
    public struct GlobalAvgPool3D<Scalar> : ParameterlessLayer where Scalar : TensorFlowFloatingPoint
  • Uma camada de agrupamento máximo global para dados temporais.

    Declaração

    @frozen
    public struct GlobalMaxPool1D<Scalar> : ParameterlessLayer where Scalar : TensorFlowFloatingPoint
  • Uma camada de agrupamento máximo global para dados espaciais.

    Declaração

    @frozen
    public struct GlobalMaxPool2D<Scalar> : ParameterlessLayer where Scalar : TensorFlowFloatingPoint
  • Uma camada de agrupamento máximo global para dados espaciais e espaço-temporais.

    Declaração

    @frozen
    public struct GlobalMaxPool3D<Scalar> : ParameterlessLayer where Scalar : TensorFlowFloatingPoint
  • Uma camada de pooling máximo fracionário para dados espaciais. Nota: FractionalMaxPool não tem uma implementação XLA, e, portanto, pode ter implicações de desempenho.

    Declaração

    @frozen
    public struct FractionalMaxPool2D<Scalar> : ParameterlessLayer where Scalar : TensorFlowFloatingPoint
  • PythonObject representa um objeto em Python e suporta pesquisa membro dinâmico. Qualquer acesso de membros como object.foo dinamicamente irá solicitar o tempo de execução Python para um membro com o nome especificado neste objeto.

    PythonObject é passado para e voltado dentre todas as chamadas de função Python e referências membros. Ele suporta aritmética Python padrão e operadores de comparação.

    Internamente, PythonObject é implementado como um ponteiro contou-referência para uma API Python C PyObject .

    Declaração

    @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
  • A PythonObject invólucro que permite jogar chamadas de método. As exceções produzidas por funções Python são refletidas como erros Swift e lançadas.

    Observação

    É intencional que ThrowingPythonObject não tem o @dynamicCallable atributo porque a sintaxe de chamada é intuitiva: x.throwing(arg1, arg2, ...) . Os métodos ainda será nomeado dynamicallyCall até uma discussão mais aprofundada / design.

    Declaração

    public struct ThrowingPythonObject
  • Um PythonObject invólucro que permite que os acessos membro. Operações de acesso membro retornar um Optional resultado. Quando o acesso membro falhar, nil é retornado.

    Declaração

    @dynamicMemberLookup
    public struct CheckingPythonObject
  • Uma interface para Python.

    PythonInterface permite interacção com o Python. Ele pode ser usado para importar módulos e acessar dinamicamente tipos e funções integradas do Python.

    Observação

    Ele não se destina a PythonInterface ser inicializado diretamente. Em vez disso, utilize a instância global de PythonInterface chamado Python .

    Declaração

    @dynamicMemberLookup
    public struct PythonInterface
  • Declaração

    public struct PythonLibrary
  • Um gerador de número aleatório apagado.

    O AnyRandomNumberGenerator tipo para a frente aleatórios operações de geração de número para um gerador de números aleatórios subjacente, escondendo o seu específico subjacente tipo.

    Declaração

    public struct AnyRandomNumberGenerator : RandomNumberGenerator
  • Uma implementação de SeedableRandomNumberGenerator usando ARC4.

    ARC4 é uma cifra de fluxo que gera um fluxo pseudo-aleatório de bytes. Este PRNG usa a semente como sua chave.

    ARC4 é descrito em Schneier, B., "Applied Cryptography: Protocols, Algorithms, and Source Code in C", 2ª Edição, 1996.

    Um gerador individual não é seguro para thread, mas geradores distintos não compartilham o estado. Os dados aleatórios gerados são de alta qualidade, mas não são adequados para aplicações criptográficas.

    Declaração

    @frozen
    public struct ARC4RandomNumberGenerator : SeedableRandomNumberGenerator
  • Uma implementação de SeedableRandomNumberGenerator usando Threefry. Salmon et al. SC 2011. números aleatórios paralelas: tão fácil como 1, 2, 3. http://www.thesalmons.org/john/random123/papers/random123sc11.pdf

    Esta estrutura implementa um PRNG Threefry2x32 de 20 rodadas. Deve ser propagado com um valor de 64 bits.

    Um gerador individual não é seguro para thread, mas geradores distintos não compartilham o estado. Os dados aleatórios gerados são de alta qualidade, mas não são adequados para aplicações criptográficas.

    Declaração

    public struct ThreefryRandomNumberGenerator : SeedableRandomNumberGenerator
  • Uma implementação de SeedableRandomNumberGenerator usando Philox. Salmon et al. SC 2011. números aleatórios paralelas: tão fácil como 1, 2, 3. http://www.thesalmons.org/john/random123/papers/random123sc11.pdf

    Esta estrutura implementa um PRNG Philox4x32 de 10 rodadas. Deve ser propagado com um valor de 64 bits.

    Um gerador individual não é seguro para thread, mas geradores distintos não compartilham o estado. Os dados aleatórios gerados são de alta qualidade, mas não são adequados para aplicações criptográficas.

    Declaração

    public struct PhiloxRandomNumberGenerator : SeedableRandomNumberGenerator
  • Declaração

    @frozen
    public struct UniformIntegerDistribution<T> : RandomDistribution where T : FixedWidthInteger
  • Declaração

    @frozen
    public struct UniformFloatingPointDistribution<T: BinaryFloatingPoint>: RandomDistribution
    where T.RawSignificand: FixedWidthInteger
  • Declaração

    @frozen
    public struct NormalDistribution<T: BinaryFloatingPoint>: RandomDistribution
    where T.RawSignificand: FixedWidthInteger
  • Declaração

    @frozen
    public struct BetaDistribution : RandomDistribution
  • Uma entrada para uma rede neural recorrente.

    Declaração

    public struct RNNCellInput<Input, State> : Differentiable where Input : Differentiable, State : Differentiable
    extension RNNCellInput: EuclideanDifferentiable
    where Input: EuclideanDifferentiable, State: EuclideanDifferentiable
  • Uma saída para uma rede neural recorrente.

    Declaração

    public struct RNNCellOutput<Output, State> : Differentiable where Output : Differentiable, State : Differentiable
    extension RNNCellOutput: EuclideanDifferentiable
    where Output: EuclideanDifferentiable, State: EuclideanDifferentiable
  • Uma célula RNN básica.

    Declaração

    public struct BasicRNNCell<Scalar> : RecurrentLayerCell where Scalar : TensorFlowFloatingPoint
  • Uma célula LSTM.

    Declaração

    public struct LSTMCell<Scalar> : RecurrentLayerCell where Scalar : TensorFlowFloatingPoint
  • Uma célula GRU.

    Declaração

    public struct GRUCell<Scalar> : RecurrentLayerCell where Scalar : TensorFlowFloatingPoint
  • Declaração

    public struct RecurrentLayer<Cell> : Layer where Cell : RecurrentLayerCell
    extension RecurrentLayer: Equatable where Cell: Equatable
    extension RecurrentLayer: AdditiveArithmetic where Cell: AdditiveArithmetic
  • Declaração

    public struct BidirectionalRecurrentLayer<Cell: RecurrentLayerCell>: Layer
    where Cell.TimeStepOutput: Mergeable
  • Uma camada que compõe sequencialmente duas ou mais outras camadas.

    Exemplos:

    • Construa um modelo simples de perceptron de 2 camadas 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)
     }
    
    • Crie um 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)
    }
    

    Declaração

    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
  • Declaração

    @_functionBuilder
    public struct LayerBuilder
  • ShapedArray é uma matriz multi-dimensional. Ele tem uma forma, que tem o tipo de [Int] e define as dimensões da matriz, e utiliza um TensorBuffer internamente como armazenamento.

    Declaração

    @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
  • Uma fatia contígua de uma ShapedArray ou ShapedArraySlice exemplo.

    ShapedArraySlice permite rápido, operações eficientes em fatias contíguas de ShapedArray casos. ShapedArraySlice casos não têm o seu próprio armazenamento. Em vez disso, que proporciona uma vista para o armazenamento de sua base ShapedArray . ShapedArraySlice pode representar dois tipos diferentes de fatias: matrizes de elementos e subarrays.

    Elemento matrizes são elementos subdimensional de um ShapedArray : sua posição é um a menos do que a sua base. Fatias ao elemento da matriz são obtidas através de indexação de um ShapedArray exemplo com um singular Int32 índice.

    Por exemplo:

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

    Subarrays são uma faixa contínua dos elementos em um ShapedArray . A classificação de um subarray é a mesma de sua base, mas sua dimensão principal é a contagem do intervalo de fatias. Fatias subarray são obtidas através de indexação de um ShapedArray com um Range<Int32> que representa uma série de elementos (na dimensão líder). Métodos como prefix(:) e suffix(:) que índice internamente com uma gama também produzir subarray.

    Por exemplo:

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

    Declaração

    @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 é uma matriz multi-dimensional, cujos elementos são String s.

    Declaração

    @frozen
    public struct StringTensor
    extension StringTensor: TensorGroup
  • TensorHandle é do tipo usado pela ops. Ele inclui um Scalar tipo, que compilador internos podem ser utilizadas para determinar os tipos de dados de parâmetros quando eles são extraídos para um programa tensor.

    Declaração

    public struct TensorHandle<Scalar> where Scalar : _TensorFlowDataTypeCompatible
    extension TensorHandle: TensorGroup
  • Declaração

    public struct ResourceHandle
    extension ResourceHandle: TensorGroup
  • Declaração

    public struct VariantHandle
    extension VariantHandle: TensorGroup
  • Uma estrutura que representa a forma de um tensor.

    TensorShape é um invólucro fino em torno de uma disposição de números inteiros que representam dimensões de forma. Todos os tipos de tensores usar TensorShape para representar a sua forma.

    Declaração

    @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 aproxima [WritableKeyPath<Base, Tensor<Float>] , mas é mais eficiente. Isso é útil para escrever otimizadores genéricos que desejam mapear gradientes, pesos existentes e um índice que pode ser usado para encontrar pesos armazenados auxiliares. Isso é um pouco mais eficiente (~ 2x), mas poderia ser melhor porque compensa overheads um pouco maiores (desreferência de ponteiro extra) por não ter que fazer o trabalho O (depth_of_tree) que é necessário com uma lista simples para rastrear cada KeyPath individual.

    Declaração

    public struct TensorVisitorPlan<Base>
  • Uma camada de upsampling para entradas 1-D.

    Declaração

    @frozen
    public struct UpSampling1D<Scalar> : ParameterlessLayer where Scalar : TensorFlowFloatingPoint
  • Uma camada de upsampling para entradas 2-D.

    Declaração

    @frozen
    public struct UpSampling2D<Scalar> : ParameterlessLayer where Scalar : TensorFlowFloatingPoint
  • Uma camada de upsampling para entradas 3-D.

    Declaração

    @frozen
    public struct UpSampling3D<Scalar> : ParameterlessLayer where Scalar : TensorFlowFloatingPoint
  • Coleta contadores de previsão corretos e totais de perda.

    Declaração

    public struct HostStatistics