Estruturas

As estruturas a seguir 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 visualizaçã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 por tipo.

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

    Declaração

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

    O parâmetro genérico Scalar descreve o tipo de escalares no tensor (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 pullback que realiza a transposição da transmissão de dois Tensors .

    Declaração

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

    Use Context.local para recuperar o contexto local do thread atual.

    Exemplos:

    • Defina a fase de aprendizagem atual como treinamento para que camadas como BatchNorm calculem a média e a variação quando aplicadas às entradas.
      Context.local.learningPhase = .training
    
    • Defina a fase de aprendizagem atual para inferência para que camadas como Dropout não descartem unidades quando aplicadas às entradas.
      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).

    Esta camada cria um filtro de convolução que é convoluído 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 é convoluído 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 espacial/espaço-temporal sobre imagens.

    Esta camada cria um filtro de convolução que é convoluído 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).

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

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

    Esta 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 2-D em profundidade.

    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 zeros na dimensão temporal.

    Declaração

    public struct ZeroPadding1D<Scalar> : ParameterlessLayer where Scalar : TensorFlowFloatingPoint
  • Uma camada para adicionar preenchimento de zeros 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.

    Esta camada executa uma convolução profunda que atua separadamente nos canais seguida por uma convolução pontual que mistura os canais.

    Declaração

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

    Esta camada executa uma convolução profunda que atua separadamente nos canais seguida por uma convolução pontual que mistura os canais.

    Declaração

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

    Uma camada nivelada nivela a entrada quando aplicada sem afetar o tamanho do lote.

    Declaração

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

    Declaração

    @frozen
    public struct Reshape<Scalar> : ParameterlessLayer where Scalar : TensorFlowFloatingPoint
  • Uma camada que inclui uma função diferenciável personalizada.

    Declaração

    public struct Function<Input, Output> : ParameterlessLayer where Input : Differentiable, Output : Differentiable
  • Um valor de tipo dinâmico do TensorFlow que pode ser criado a partir de tipos 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 usado para representar um pipeline de entrada como uma coleção de tensores de elementos.

    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 nos elementos de um conjunto de dados.

    Declaração

    @available(*, deprecated)
    @frozen
    public struct DatasetIterator<Element> where Element : TensorGroup
    extension DatasetIterator: IteratorProtocol
  • Uma estrutura semelhante a 2 tuplas 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 peso, bias é um vetor de polarização e activation é uma função de ativação elemento a elemento.

    Esta camada também suporta tensores de peso 3D com matrizes de polarização 2D. Neste caso a primeira dimensão de ambos é tratada como o tamanho do lote que está alinhado com a primeira dimensão de input e a variante do lote da operação matmul(_:_:) é usada, usando assim um peso e viés 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 pode ser alocado.

    Declaração

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

    O dropout consiste em definir aleatoriamente uma fração das unidades de entrada como 0 a cada atualização durante o tempo de treinamento, o que ajuda a evitar overfitting.

    Declaração

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

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

    Declaração

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

    Por se tratar de uma camada de regularização, ela só fica ativa durante o tempo de treinamento. Durante a inferência, GaussianDropout passa pela entrada sem modificações.

    Declaração

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

    Alpha Dropout é um Dropout que mantém a média e a variância das entradas em seus valores originais, de forma a garantir a propriedade de autonormalização mesmo após esse dropout. Alpha Dropout se adapta bem às unidades lineares exponenciais em escala, definindo aleatoriamente as ativações para o valor de saturação negativo.

    Fonte: Redes Neurais Auto-Normalizantes: https://arxiv.org/abs/1706.02515

    Declaração

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

    Embedding é efetivamente uma tabela de pesquisa que mapeia índices de um vocabulário fixo para representações vetoriais de tamanho fixo (densas), 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 que representa TangentVector s vazios 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 morfoló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 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 coleção das fatias contíguas não sobrepostas mais longas de alguma coleção Base , começando com seu primeiro elemento e tendo algum comprimento máximo fixo.

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

    Declaração

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

    Normaliza as ativações da camada anterior em cada lote, ou seja, aplica uma transformação que mantém a ativação média próxima de 0 e o desvio padrão de ativação próximo de 1 .

    Referência: Normalização em lote: acelerando o treinamento profundo da rede reduzindo o deslocamento interno de covariáveis ​​.

    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: Normalização de Camada .

    Declaração

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

    Referência: Normalização de Grupo .

    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: Normalização de instância: o ingrediente que falta para estilização rápida .

    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 por meio de StateAccessor .

    Declaração

    public struct OptimizerState
  • [String: Float] mas os 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 valor de índice Int para valores locais do otimizador.

    Declaração

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

    Declaração

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

    Declaração

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

    Declaração

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

    Declaração

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

    Declaração

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

    Declaração

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

    Declaração

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

    Declaração

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

    Declaração

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

    Declaração

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

    Declaração

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

    Declaração

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

    Declaração

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

    Declaração

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

    Declaração

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

    Declaração

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

    PythonObject é passado e retornado de todas as chamadas de função Python e referências de membros. Ele oferece suporte a operadores aritméticos e de comparação padrão do Python.

    Internamente, PythonObject é implementado como um ponteiro contado por 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
  • Um wrapper PythonObject que permite lançar chamadas de método. As exceções produzidas pelas funções Python são refletidas como erros Swift e lançadas.

    Observação

    É intencional que ThrowingPythonObject não tenha o atributo @dynamicCallable porque a sintaxe da chamada não é intuitiva: x.throwing(arg1, arg2, ...) . Os métodos ainda serão nomeados dynamicallyCall até discussão/design posterior.

    Declaração

    public struct ThrowingPythonObject
  • Um wrapper PythonObject que permite acessos de membros. As operações de acesso de membro retornam um resultado Optional . Quando o acesso do membro falha, nil é retornado.

    Declaração

    @dynamicMemberLookup
    public struct CheckingPythonObject
  • Uma interface para Python.

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

    Observação

    Não se destina que PythonInterface seja inicializado diretamente. Em vez disso, use a instância global de PythonInterface chamada Python .

    Declaração

    @dynamicMemberLookup
    public struct PythonInterface
  • Declaração

    public struct PythonLibrary
  • Um gerador de números aleatórios com tipo apagado.

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

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

    ARC4 é descrito em Schneier, B., “Applied Cryptography: Protocols, Algorithms, and Source Code in C”, 2nd Edition, 1996.

    Um gerador individual não é thread-safe, mas geradores distintos não compartilham 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 paralelos: tão fáceis quanto 1, 2, 3. http://www.thesalmons.org/john/random123/papers/random123sc11.pdf

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

    Um gerador individual não é thread-safe, mas geradores distintos não compartilham 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 paralelos: tão fáceis quanto 1, 2, 3. http://www.thesalmons.org/john/random123/papers/random123sc11.pdf

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

    Um gerador individual não é thread-safe, mas geradores distintos não compartilham 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 perceptron simples 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 é um array multidimensional. Possui um shape, que possui tipo [Int] e define as dimensões do array, 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 instância ShapedArray ou ShapedArraySlice .

    ShapedArraySlice permite operações rápidas e eficientes em fatias contíguas de instâncias ShapedArray . As instâncias ShapedArraySlice não possuem armazenamento próprio. Em vez disso, eles fornecem uma visão do armazenamento de seu ShapedArray base. ShapedArraySlice pode representar dois tipos diferentes de fatias: matrizes de elementos e submatrizes.

    Matrizes de elementos são elementos subdimensionais de um ShapedArray : sua classificação é um a menos que sua base. As fatias da matriz de elementos são obtidas indexando uma instância ShapedArray com um índice Int32 singular.

    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 um intervalo contíguo de elementos em um ShapedArray . A classificação de um subarray é igual à de sua base, mas sua dimensão principal é a contagem do intervalo de fatias. As fatias de subarray são obtidas indexando um ShapedArray com um Range<Int32> que representa um intervalo de elementos (na dimensão principal). Métodos como prefix(:) e suffix(:) que indexam internamente com um intervalo também produzem 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 é um array multidimensional cujos elementos são String s.

    Declaração

    @frozen
    public struct StringTensor
    extension StringTensor: TensorGroup
  • TensorHandle é o tipo usado por operações. Inclui um tipo Scalar , que os internos do compilador podem usar para determinar os tipos de dados dos parâmetros quando eles são extraídos em 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 wrapper fino em torno de uma matriz de números inteiros que representam dimensões de forma. Todos os tipos de tensor usam TensorShape para representar 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 se aproxima [WritableKeyPath<Base, Tensor<Float>] mas é mais eficiente. Isso é útil para escrever otimizadores genéricos que desejam mapear os gradientes, os pesos existentes e um índice que pode ser usado para encontrar pesos armazenados auxiliarmente. Isso é um pouco mais eficiente (~ 2x), mas poderia ser melhor porque compensa despesas gerais um pouco mais altas (desreferência de ponteiro extra) por não ter que fazer o trabalho O (profundidade_de_árvore) 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 3D.

    Declaração

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

    Declaração

    public struct HostStatistics