Tensor

@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
marcador
extension Tensor: VectorProtocol where Scalar: TensorFlowFloatingPoint
marcador de posición
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 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.).

  • El TensorHandle subyacente.

    Nota

    handle es público para permitir operaciones definidas por el usuario, pero normalmente no debería usarse.

    Declaración

    public let handle: TensorHandle<Scalar>
  • Declaración

    public init(handle: TensorHandle<Scalar>)
  • Descomprime la dimensión dada de un tensor de rango R en múltiples tensores de rango (R-1) . Desempaqueta N tensores de este tensor cortándolos a lo largo de la dimensión axis , donde N se infiere de la forma de este tensor. Por ejemplo, dado un tensor con forma [A, B, C, D] :

    • Si axis == 0 , entonces el i -ésimo tensor en la matriz devuelta es el segmento self[i, :, :, :] y cada tensor en esa matriz tendrá forma [B, C, D] . (Tenga en cuenta que la dimensión desempaquetada desapareció, a diferencia de Tensor.split(numSplits:alongAxis) o Tensor.split(sizes:alongAxis) ).
    • Si axis == 1 , entonces el i -ésimo tensor en la matriz devuelta es el value[:, i, :, :] y cada tensor en esa matriz tendrá forma [A, C, D] .
    • Etc.

    Esto es lo opuesto a Tensor.init(stacking:alongAxis:) .

    Condición previa

    axis debe estar en el rango [-rank, rank) , donde rank es el rango de los tensores proporcionados.

    Declaración

    @differentiable
    public func unstacked(alongAxis axis: Int = 0) -> [Tensor]

    Parámetros

    axis

    Dimensión a lo largo de la cual desapilar. Los valores negativos se extienden.

    Valor de retorno

    Matriz que contiene los tensores desapilados.

  • Divide un tensor en múltiples tensores. El tensor se divide a lo largo axis de dimensión en count más pequeños. Esto requiere que count divida uniformemente shape[axis] .

    Por ejemplo:

    // 'value' is a tensor with shape [5, 30]
    // Split 'value' into 3 tensors along dimension 1:
    let parts = value.split(count: 3, alongAxis: 1)
    parts[0] // has shape [5, 10]
    parts[1] // has shape [5, 10]
    parts[2] // has shape [5, 10]
    

    Condición previa

    count debe dividir el tamaño del axis de dimensión de manera uniforme.

    Condición previa

    axis debe estar en el rango [-rank, rank) , donde rank es el rango de los tensores proporcionados.

    Declaración

    @differentiable
    public func split(count: Int, alongAxis axis: Int = 0) -> [Tensor]

    Parámetros

    count

    Número de divisiones a crear.

    axis

    La dimensión a lo largo de la cual dividir este tensor. Los valores negativos se extienden.

    Valor de retorno

    Una matriz que contiene la parte de los tensores.

  • Divide un tensor en múltiples tensores. El tensor se divide en sizes.shape[0] piezas. La forma de la i -ésima pieza tiene la misma forma que este tensor excepto a lo largo axis de dimensión donde el tamaño es sizes[i] .

    Por ejemplo:

    // 'value' is a tensor with shape [5, 30]
    // Split 'value' into 3 tensors with sizes [4, 15, 11] along dimension 1:
    let parts = value.split(sizes: Tensor<Int32>([4, 15, 11]), alongAxis: 1)
    parts[0] // has shape [5, 4]
    parts[1] // has shape [5, 15]
    parts[2] // has shape [5, 11]
    

    Condición previa

    Los valores en sizes deben sumar el tamaño del axis de dimensión.

    Condición previa

    axis debe estar en el rango [-rank, rank) , donde rank es el rango de los tensores proporcionados.

    Declaración

    @differentiable(wrt: self)
    public func split(sizes: Tensor<Int32>, alongAxis axis: Int = 0) -> [Tensor]

    Parámetros

    sizes

    Tensor 1-D que contiene el tamaño de cada división.

    axis

    Dimensión a lo largo de la cual dividir este tensor. Los valores negativos se extienden.

    Valor de retorno

    Matriz que contiene las partes de los tensores.

  • Declaración

    @differentiable(wrt: self)
    public func split(sizes: [Int], alongAxis axis: Int = 0) -> [Tensor]
  • Devuelve un tensor en mosaico, construido colocando este tensor en mosaico.

    Este constructor crea un nuevo tensor replicando este tensor multiples veces. La i dimensión del tensor construido tiene elementos self.shape[i] * multiples[i] , y los valores de este tensor se replican multiples[i] veces a lo largo de la i dimensión. Por ejemplo, colocar en mosaico [abcd] por [2] produce [abcdabcd] .

    Condición previa

    El rank esperado de múltiplos debe ser 1 .

    Condición previa

    La forma de multiples debe ser [tensor.rank] .

    Condición previa

    Todos los escalares en multiples deben ser no negativos.

    Declaración

    @differentiable(wrt: self)
    public func tiled(multiples: [Int]) -> Tensor
  • Devuelve un tensor en mosaico, construido colocando este tensor en mosaico.

    Este constructor crea un nuevo tensor replicando este tensor multiples veces. La i dimensión del tensor construido tiene elementos self.shape[i] * multiples[i] , y los valores de este tensor se replican multiples[i] veces a lo largo de la i dimensión. Por ejemplo, colocar en mosaico [abcd] por [2] produce [abcdabcd] .

    Condición previa

    El rank esperado de múltiplos debe ser 1 .

    Condición previa

    La forma de multiples debe ser [tensor.rank] .

    Declaración

    @differentiable(wrt: self)
    public func tiled(multiples: Tensor<Int32>) -> Tensor
  • Cambie la forma a la forma del Tensor especificado.

    Condición previa

    El número de escalares coincide con la nueva forma.

    Declaración

    @differentiable(wrt: self)
    public func reshaped<T>(like other: Tensor<T>) -> Tensor where T : TensorFlowScalar
  • Cambie la forma a la forma especificada.

    Condición previa

    El número de escalares coincide con la nueva forma.

    Declaración

    @differentiable(wrt: self)
    public func reshaped(to newShape: TensorShape) -> Tensor
  • Cambie la forma al Tensor especificado que representa una forma.

    Condición previa

    El número de escalares coincide con la nueva forma.

    Declaración

    @differentiable(wrt: self)
    public func reshaped(toShape newShape: Tensor<Int32>) -> Tensor
  • Devuelve una copia del tensor colapsado en un Tensor 1-D, en orden de fila principal.

    Declaración

    @differentiable(wrt: self)
    public func flattened() -> Tensor
  • Devuelve un Tensor expandido de forma, con una dimensión de 1 insertada en los índices de forma especificados.

    Declaración

    @differentiable(wrt: self)
    public func expandingShape(at axes: Int...) -> Tensor
  • Devuelve un Tensor expandido de forma, con una dimensión de 1 insertada en los índices de forma especificados.

    Declaración

    @differentiable(wrt: self)
    public func expandingShape(at axes: [Int]) -> Tensor
  • Devuelve un Tensor de rango elevado con una dimensión principal de 1.

    Declaración

    @differentiable(wrt: self)
    public func rankLifted() -> Tensor
  • Elimina las dimensiones especificadas de tamaño 1 de la forma de un tensor. Si no se especifica ninguna dimensión, se eliminarán todas las dimensiones de tamaño 1.

    Declaración

    @differentiable(wrt: self)
    public func squeezingShape(at axes: Int...) -> Tensor
  • Elimina las dimensiones especificadas de tamaño 1 de la forma de un tensor. Si no se especifica ninguna dimensión, se eliminarán todas las dimensiones de tamaño 1.

    Declaración

    @differentiable(wrt: self)
    public func squeezingShape(at axes: [Int]) -> Tensor
  • Devuelve un tensor transpuesto, con dimensiones permutadas en el orden especificado.

    Declaración

    @differentiable(wrt: self)
    public func transposed(permutation: Tensor<Int32>) -> Tensor
  • Devuelve un tensor transpuesto, con dimensiones permutadas en el orden especificado.

    Declaración

    @available(*, deprecated, renamed: "transposed(permutation:﹚")
    @differentiable(wrt: self)
    public func transposed(withPermutations permutations: Tensor<Int32>) -> Tensor
  • Devuelve un tensor transpuesto, con dimensiones permutadas en el orden especificado.

    Declaración

    @differentiable(wrt: self)
    public func transposed(permutation: [Int]) -> Tensor
  • Devuelve un tensor transpuesto, con dimensiones permutadas en el orden especificado.

    Declaración

    @available(*, deprecated, renamed: "transposed(permutation:﹚")
    @differentiable(wrt: self)
    public func transposed(withPermutations permutations: [Int]) -> Tensor
  • Devuelve un tensor transpuesto, con dimensiones permutadas en el orden especificado.

    Declaración

    @differentiable(wrt: self)
    public func transposed(permutation: Int...) -> Tensor
  • Devuelve un tensor transpuesto, con dimensiones permutadas en el orden especificado.

    Declaración

    @available(*, deprecated, renamed: "transposed(permutation:﹚")
    @differentiable(wrt: self)
    public func transposed(withPermutations permutations: Int...) -> Tensor
  • Devuelve un tensor transpuesto, con dimensiones permutadas en orden inverso.

    Declaración

    @differentiable(wrt: self)
    public func transposed() -> Tensor
  • Devuelve un tensor con dimensiones especificadas invertidas.

    Condición previa

    Cada valor en axes debe estar en el rango -rank..<rank .

    Condición previa

    No debe haber duplicación de axes .

    Declaración

    @differentiable(wrt: self)
    public func reversed(inAxes axes: Tensor<Int32>) -> Tensor
  • Devuelve un tensor con dimensiones especificadas invertidas.

    Condición previa

    Cada valor en axes debe estar en el rango -rank..<rank .

    Condición previa

    No debe haber duplicación de axes .

    Declaración

    @differentiable(wrt: self)
    public func reversed(inAxes axes: [Int]) -> Tensor
  • Devuelve un tensor con dimensiones especificadas invertidas.

    Condición previa

    Cada valor en axes debe estar en el rango -rank..<rank .

    Condición previa

    No debe haber duplicación de axes .

    Declaración

    @differentiable(wrt: self)
    public func reversed(inAxes axes: Int...) -> Tensor
  • Devuelve un tensor concatenado a lo largo del eje especificado.

    Condición previa

    Los tensores deben tener las mismas dimensiones, excepto el eje especificado.

    Condición previa

    El eje debe estar en el rango -rank..<rank .

    Declaración

    @differentiable
    public func concatenated(with other: Tensor, alongAxis axis: Int = 0) -> Tensor
  • Operador de concatenación.

    Nota

    ++ es un operador personalizado que no existe en Swift, pero sí en Haskell/Scala. Su adición no es un cambio de lenguaje insignificante y puede resultar controvertido. La existencia/nombramiento de ++ se discutirá durante una fase posterior de diseño de API.

    Declaración

    @differentiable
    public static func ++ (lhs: Tensor, rhs: Tensor) -> Tensor
  • Devuelve un tensor reuniendo porciones de la entrada en indices a lo largo de la dimensión axis

    Para indices 0-D (escalares):

    result[p_0,          ..., p_{axis-1},
           p_{axis + 1}, ..., p_{N-1}] =
    self[p_0,          ..., p_{axis-1},
         indices,
         p_{axis + 1}, ..., p_{N-1}]
    

    Para indices 1-D (vectoriales):

    result[p_0,          ..., p_{axis-1},
           i,
           p_{axis + 1}, ..., p_{N-1}] =
    self[p_0,          ..., p_{axis-1},
         indices[i],
         p_{axis + 1}, ..., p_{N-1}]
    

    En el caso general, produce un tensor resultante donde:

    result[p_0,             ..., p_{axis-1},
           i_{batch\_dims}, ..., i_{M-1},
           p_{axis + 1},    ..., p_{N-1}] =
    self[p_0,             ..., p_{axis-1},
         indices[i_0,     ..., i_{M-1}],
         p_{axis + 1},    ..., p_{N-1}]
    

    donde N = self.rank y M = indices.rank .

    La forma del tensor resultante es: self.shape[..<axis] + indices.shape + self.shape[(axis + 1)...] .

    Nota

    En la CPU, si se encuentra un índice fuera de rango, se genera un error. En GPU, si se encuentra un índice fuera de rango, se almacena un 0 en los valores de salida correspondientes.

    Condición previa

    axis debe estar en el rango [-rank, rank) .

    Declaración

    @differentiable(wrt: self)
    public func gathering<Index: TensorFlowIndex>(
      atIndices indices: Tensor<Index>,
      alongAxis axis: Int = 0
    ) -> Tensor

    Parámetros

    indices

    Contiene los índices para recolectar.

    axis

    Dimensión a lo largo de la cual reunirse. Los valores negativos se extienden.

    Valor de retorno

    El tensor reunido.

  • Devuelve sectores de este tensor en indices a lo largo de la dimensión axis , ignorando las primeras dimensiones batchDimensionCount que corresponden a las dimensiones de lote. La recolección se realiza a lo largo de la primera dimensión que no es por lotes.

    Realiza una funcionalidad similar a gathering , excepto que la forma del tensor resultante ahora es shape[..<axis] + indices.shape[batchDimensionCount...] + shape[(axis + 1)...] .

    Condición previa

    axis debe estar en el rango -rank..<rank , y al mismo tiempo ser mayor o igual que batchDimensionCount .

    Condición previa

    batchDimensionCount debe ser menor que indices.rank .

    Declaración

    @differentiable(wrt: self)
    public func batchGathering<Index: TensorFlowIndex>(
      atIndices indices: Tensor<Index>,
      alongAxis axis: Int = 1,
      batchDimensionCount: Int = 1
    ) -> Tensor

    Parámetros

    indices

    Contiene los índices a recopilar.

    axis

    Dimensión a lo largo de la cual reunirse. Los valores negativos se extienden.

    batchDimensionCount

    Número de dimensiones de lote principales que se ignorarán.

    Valor de retorno

    El tensor reunido.

  • Devuelve un tensor reuniendo los valores después de aplicar la máscara booleana proporcionada a la entrada.

    Por ejemplo:

    // 1-D example
    // tensor is [0, 1, 2, 3]
    // mask is [true, false, true, false]
    tensor.gathering(where: mask) // is [0, 2]
    
    // 2-D example
    // tensor is [[1, 2], [3, 4], [5, 6]]
    // mask is [true, false, true]
    tensor.gathering(where: mask) // is [[1, 2], [5, 6]]
    

    En general, 0 < mask.rank = K <= tensor.rank y la forma de la mask debe coincidir con las primeras K dimensiones de la forma del tensor . Entonces tenemos: tensor.gathering(where: mask)[i, j1, ..., jd] = tensor[i1, ..., iK, j1, ..., jd] , donde [i1, ..., iK] es la i ésima entrada true de mask (orden de fila principal).

    El axis podría usarse con mask para indicar el eje desde el que se debe enmascarar. En ese caso, axis + mask.rank <= tensor.rank y la 's shape must match the first mask deben coincidir con las dimensions of the forma del tensor.

    Condición previa

    La mask no puede ser un escalar: mask.rank != 0 .

    Declaración

    @differentiable(wrt: self)
    public func gathering(where mask: Tensor<Bool>, alongAxis axis: Int = 0) -> Tensor

    Parámetros

    mask

    Tensor booleano KD, donde K <= self.rank .

    axis

    Tensor entero 0-D que representa el eje en self desde el que enmascarar, donde K + axis <= self.rank .

    Valor de retorno

    (self.rank - K + 1) tensor -dimensional poblado por entradas en este tensor correspondientes a valores true en mask .

  • Devuelve las ubicaciones de valores distintos de cero/verdaderos en este tensor.

    Las coordenadas se devuelven en un tensor 2-D donde la primera dimensión (filas) representa el número de elementos distintos de cero y la segunda dimensión (columnas) representa las coordenadas de los elementos distintos de cero. Tenga en cuenta que la forma del tensor de salida puede variar dependiendo de cuántos valores verdaderos haya en este tensor. Los índices se generan en el orden de las filas principales.

    Por ejemplo:

    // 'input' is [[true, false], [true, false]]
    // 'input' has 2 true values and so the output has 2 rows.
    // 'input' has rank of 2, and so the second dimension of the output has size 2.
    input.nonZeroIndices() // is [[0, 0], [1, 0]]
    
    // 'input' is [[[ true, false], [ true, false]],
    //             [[false,  true], [false,  true]],
    //             [[false, false], [false,  true]]]
    // 'input' has 5 true values and so the output has 5 rows.
    // 'input' has rank 3, and so the second dimension of the output has size 3.
    input.nonZeroIndices() // is [[0, 0, 0],
                           //     [0, 1, 0],
                           //     [1, 0, 1],
                           //     [1, 1, 1],
                           //     [2, 1, 1]]
    

    Declaración

    public func nonZeroIndices() -> Tensor<Int64>

    Valor de retorno

    Un tensor con forma (num_true, rank(condition)) .

  • Declaración

    @differentiable(wrt: self)
    public func broadcasted(toShape shape: Tensor<Int32>) -> Tensor
  • Declaración

    @differentiable(wrt: self)
    public func broadcasted(to shape: TensorShape) -> Tensor
  • Transmitir con la misma forma que el Tensor especificado.

    Condición previa

    La forma especificada debe ser compatible para la transmisión.

    Declaración

    @differentiable(wrt: self)
    public func broadcasted<OtherScalar>(like other: Tensor<OtherScalar>) -> Tensor where OtherScalar : TensorFlowScalar
  • Declaración

    public static func .= (lhs: inout Tensor, rhs: Tensor)
  • Extrae una porción del tensor definido por los límites superior e inferior para cada dimensión.

    Declaración

    @differentiable(wrt: self)
    public func slice(lowerBounds: [Int], upperBounds: [Int]) -> Tensor

    Parámetros

    lowerBounds

    Los límites inferiores en cada dimensión.

    upperBounds

    Los límites superiores en cada dimensión.

  • Declaración

    @differentiable(wrt: self)
    public func slice(lowerBounds: Tensor<Int32>, sizes: Tensor<Int32>) -> Tensor
  • Declaración

    @differentiable(wrt: self)
    public func slice(lowerBounds: [Int], sizes: [Int]) -> Tensor
  • Declaración

    @differentiable(wrt: self)
    public subscript(ranges: TensorRangeExpression...) -> Tensor { get set }
  • Comprueba que cada elemento de axes denota un eje self y, en caso contrario, detiene el programa con un diagnóstico.

    Declaración

    func ensureValid(
      axes: Tensor<Int32>,
      function: StaticString = #function,
      file: StaticString = #file,
      line: UInt = #line
    )
  • Comprueba que cada elemento de axes denota un eje self y, en caso contrario, detiene el programa con un diagnóstico.

    Declaración

    func ensureValid(
      axes: [Int],
      function: StaticString = #function,
      file: StaticString = #file,
      line: UInt = #line
    )
  • Comprueba que k denota un eje de self y, en caso contrario, detiene el programa con un diagnóstico.

    Declaración

    func ensureValid(
      axis k: Int,
      function: StaticString = #function,
      file: StaticString = #file,
      line: UInt = #line
    )
  • Declaración

    public init<BatchSamples: Collection>(collating samples: BatchSamples)
    where BatchSamples.Element == Self
  • Crea una copia de other en el Device dado.

    Declaración

    public init(copying other: Tensor, to device: Device)
  • Crea un tensor con la forma especificada y un valor escalar único y repetido.

    Declaración

    @available(*, deprecated, renamed: "init(repeating:shape:﹚")
    public init(shape: TensorShape, repeating repeatedValue: Scalar)

    Parámetros

    shape

    Las dimensiones del tensor.

    repeatedValue

    El valor escalar a repetir.

  • Crea un tensor con la forma especificada y un valor escalar único y repetido.

    Declaración

    @differentiable
    public init(
      repeating repeatedValue: Scalar, shape: TensorShape,
      on device: Device = .default
    )

    Parámetros

    repeatedValue

    El valor escalar a repetir.

    shape

    Las dimensiones del tensor.

  • Crea un tensor transmitiendo el escalar dado a un rango determinado con todas las dimensiones siendo 1.

    Declaración

    public init(broadcasting scalar: Scalar, rank: Int, on device: Device = .default)
  • Crea un tensor a partir de una matriz de tensores (que a su vez pueden ser escalares).

    Declaración

    @differentiable
    public init(_ elements: [Tensor])
  • Apila tensors , a lo largo de la dimensión axis , en un nuevo tensor con rango uno superior al tensor actual y cada tensor en tensors .

    Dado que todos tensors tienen forma [A, B, C] y tensors.count = N , entonces:

    • Si axis == 0 , entonces el tensor resultante tendrá la forma [N, A, B, C] .
    • Si axis == 1 , entonces el tensor resultante tendrá la forma [A, N, B, C] .
    • etc.

    Por ejemplo:

    // 'x' is [1, 4]
    // 'y' is [2, 5]
    // 'z' is [3, 6]
    Tensor(stacking: [x, y, z]) // is [[1, 4], [2, 5], [3, 6]]
    Tensor(stacking: [x, y, z], alongAxis: 1) // is [[1, 2, 3], [4, 5, 6]]
    

    Esto es lo opuesto a Tensor.unstacked(alongAxis:) .

    Condición previa

    Todos los tensores deben tener la misma forma.

    Condición previa

    axis debe estar en el rango [-rank, rank) , donde rank es el rango de los tensores proporcionados.

    Declaración

    @differentiable
    public init(stacking tensors: [Tensor], alongAxis axis: Int = 0)

    Parámetros

    tensors

    Tensores para apilar.

    axis

    Dimensión a lo largo de la cual apilar. Los valores negativos se extienden.

    Valor de retorno

    El tensor apilado.

  • Concatena tensors a lo largo de la dimensión axis .

    Dado que tensors[i].shape = [D0, D1, ... Daxis(i), ...Dn] , entonces el resultado concatenado tiene forma [D0, D1, ... Raxis, ...Dn] , donde Raxis = sum(Daxis(i)) . Es decir, los datos de los tensores de entrada se unen a lo largo de la dimensión axis .

    Por ejemplo:

    // t1 is [[1, 2, 3], [4, 5, 6]]
    // t2 is [[7, 8, 9], [10, 11, 12]]
    Tensor(concatenating: [t1, t2]) // is [[1, 2, 3], [4, 5, 6], [7, 8, 9], [10, 11, 12]]
    Tensor(concatenating: [t1, t2], alongAxis: 1) // is [[1, 2, 3, 7, 8, 9], [4, 5, 6, 10, 11, 12]]
    
    // t3 has shape [2, 3]
    // t4 has shape [2, 3]
    Tensor(concatenating: [t3, t4]) // has shape [4, 3]
    Tensor(concatenating: [t3, t4], alongAxis: 1) // has shape [2, 6]
    

    Nota

    Si está concatenando a lo largo de un nuevo eje, considere usar Tensor.init(stacking:alongAxis:) .

    Condición previa

    Todos los tensores deben tener el mismo rango y todas las dimensiones excepto axis deben ser iguales.

    Condición previa

    axis debe estar en el rango [-rank, rank) , donde rank es el rango de los tensores proporcionados.

    Declaración

    @differentiable
    public init(concatenating tensors: [Tensor], alongAxis axis: Int = 0)

    Parámetros

    tensors

    Tensores para concatenar.

    axis

    Dimensión a lo largo de la cual concatenar. Los valores negativos se extienden.

    Valor de retorno

    El tensor concatenado.

  • Reemplaza elementos de este tensor con other en los carriles donde mask es true .

    Condición previa

    self y other deben tener la misma forma. Si self y other son escalares, entonces mask también debe ser escalar. Si self y other tienen un rango mayor o igual a 1 , entonces mask debe tener la misma forma que self o ser un Tensor 1-D tal que mask.scalarCount == self.shape[0] .

    Declaración

    @differentiable(wrt: (self, other)
    ) public func replacing(with other: Tensor, where mask: Tensor<Bool>) -> Tensor
  • Devuelve verdadero si el tipo escalar físico tiene precisión reducida.

    Actualmente, los tipos escalares físicos de precisión reducida incluyen solo BFloat16 .

    Declaración

    public var isReducedPrecision: Bool { get }
  • Promueve un escalar a tensor con el mismo dispositivo y precisión que el tensor dado.

    Declaración

    @differentiable
    public init(_ value: Scalar, deviceAndPrecisionLike tensor: Tensor)
  • Devuelve una copia self al tipo escalar físico BFloat16 .

    Declaración

    public var toReducedPrecision: `Self` { get }
  • Devuelve una copia del tipo Scalar físico self .

    Declaración

    public var toFullPrecision: `Self` { get }
  • El número de dimensiones del Tensor .

    Declaración

    public var rank: Int { get }
  • La forma del Tensor .

    Declaración

    public var shape: TensorShape { get }
  • El número de escalares en el Tensor .

  • Declaración

    public var scalarCount: Int { get }
  • El rango del tensor, representado como Tensor<Int32> .

    Declaración

    public var rankTensor: Tensor<Int32> { get }
  • Las dimensiones del tensor, representadas como Tensor<Int32> .

    Declaración

    public var shapeTensor: Tensor<Int32> { get }
  • El número de escalares en el tensor, representado como Tensor<Int32> .

    Declaración

    public var scalarCountTensor: Tensor<Int32> { get }
  • Devuelve true si rank es igual a 0 y false en caso contrario.

    Declaración

    public var isScalar: Bool { get }
  • Devuelve el elemento escalar único si rank es igual a 0 y nil en caso contrario.

    Declaración

    public var scalar: Scalar? { get }
  • Reformar a escalar.

    Condición previa

    El tensor tiene exactamente un escalar.

    Declaración

    @differentiable
    public func scalarized() -> Scalar
  • Declaración

    public var array: ShapedArray<Scalar> { get }
  • Declaración

    @differentiable
    public var scalars: [Scalar] { get }
  • Crea un tensor 0-D a partir de un valor escalar.

    Declaración

    @differentiable
    public init(_ value: Scalar, on device: Device = .default)
  • Crea un tensor 1D a partir de escalares.

    Declaración

    @differentiable
    public init(_ scalars: [Scalar], on device: Device = .default)
  • Crea un tensor 1D a partir de escalares.

    Declaración

    public init<C: Collection>(
      _ vector: C, on device: Device = .default
    ) where C.Element == Scalar
  • Crea un tensor con la forma especificada y escalares contiguos en orden de fila principal.

    Condición previa

    El producto de las dimensiones de la figura debe ser igual al número de escalares.

    Declaración

    @differentiable
    public init(shape: TensorShape, scalars: [Scalar], on device: Device = .default)

    Parámetros

    shape

    La forma del tensor.

    scalars

    El contenido escalar del tensor.

  • Crea un tensor con la forma especificada y escalares contiguos en orden de fila principal.

    Condición previa

    El producto de las dimensiones de la figura debe ser igual al número de escalares.

    Declaración

    public init(
      shape: TensorShape,
      scalars: UnsafeBufferPointer<Scalar>,
      on device: Device = .default
    )

    Parámetros

    shape

    La forma del tensor.

    scalars

    El contenido escalar del tensor.

  • Crea un tensor con la forma especificada y escalares contiguos en orden de fila principal.

    Condición previa

    El producto de las dimensiones de la figura debe ser igual al número de escalares.
  • Crea un tensor con la forma especificada y escalares contiguos en orden de fila principal.

    Condición previa

    El producto de las dimensiones de la figura debe ser igual al número de escalares.

    Declaración

    public init<C: Collection>(
      shape: TensorShape, scalars: C, on device: Device = .default
    ) where C.Element == Scalar

    Parámetros

    shape

    La forma del tensor.

    scalars

    El contenido escalar del tensor.

  • El tipo de elementos de un literal de matriz.

    Declaración

    public typealias ArrayLiteralElement = _TensorElementLiteral<Scalar>
  • Crea un tensor inicializado con los elementos dados.

    Declaración

    public init(arrayLiteral elements: _TensorElementLiteral<Scalar>...)
  • Una representación textual del tensor.

    Nota

    use fullDescription para obtener una descripción no impresa que muestre todos los escalares.

    Declaración

    public var description: String { get }
  • Una representación textual del tensor. Devuelve una descripción resumida si summarize es verdadero y el recuento de elementos excede el doble de edgeElementCount .

    Declaración

    public func description(
      lineWidth: Int = 80,
      edgeElementCount: Int = 3,
      summarizing: Bool = false
    ) -> String

    Parámetros

    lineWidth

    El ancho máximo de línea para imprimir. Se utiliza para determinar el número de escalares que se imprimirán por línea.

    edgeElementCount

    El número máximo de elementos para imprimir antes y después del resumen mediante elipses ( ... ).

    summarizing

    Si es verdadero, resuma la descripción si el recuento de elementos excede el doble edgeElementCount .

  • Una representación textual completa y no muy impresa del tensor, que muestra todos los escalares.

    Declaración

    public var fullDescription: String { get }
  • Declaración

    public var playgroundDescription: Any { get }
  • Declaración

    public var customMirror: Mirror { get }
  • Las anotaciones que describen este tensor.

    Declaración

    public var annotations: String { get }
  • Un alias para anotaciones.

    Declaración

    public var summary: String { get }
  • Declaración

    public init(_owning tensorHandles: UnsafePointer<CTensorHandle>?)
  • Declaración

    public init<C: RandomAccessCollection>(
      _handles: C
    ) where C.Element: _AnyTensorHandle
  • Declaración

    public init(_ array: ShapedArray<Scalar>, on device: Device = .default)
  • Declaración

    init(_xla: XLATensor)
  • Declaración

    init(_xlaHandle: UnsafeMutablePointer<OpaqueXLATensor>)
  • Declaración

    var xlaHandle: UnsafeMutablePointer<OpaqueXLATensor> { get }
  • Declaración

    var xlaTensor: XLATensor { get }
Disponible donde `Escalar`: `Numérico`
  • Declaración

    @differentiable(wrt: self)
    public func unbroadcasted(toShape otherShape: Tensor<Int32>) -> Tensor
  • Declaración

    @differentiable(wrt: self)
    public func unbroadcasted<OtherScalar>(like other: Tensor<OtherScalar>) -> Tensor where OtherScalar : TensorFlowScalar
  • Declaración

    @differentiable(wrt: self)
    public func unbroadcasted(to shape: TensorShape) -> Tensor
  • Un modo que dicta cómo se rellena un tensor.

    Declaración

    public enum PaddingMode
  • Devuelve un tensor relleno con una constante según los tamaños de relleno especificados.

    Declaración

    @differentiable(wrt: self)
    public func padded(forSizes sizes: [(before: Int, after: Int)], with value: Scalar = 0)
      -> Tensor
  • Devuelve un tensor acolchado según el modo y los tamaños de relleno especificados.

    Declaración

    @differentiable(wrt: self)
    public func padded(forSizes sizes: [(before: Int, after: Int)], mode: PaddingMode) -> Tensor
Disponible donde `Escalar`: `Numérico` y `Comparable`
  • Devuelve un tensor de escalares booleanos calculando lhs < rhs por elementos.

    Declaración

    public static func .< (lhs: Tensor, rhs: Tensor) -> Tensor<Bool>
  • Devuelve un tensor de escalares booleanos calculando lhs <= rhs por elementos.

    Declaración

    public static func .<= (lhs: Tensor, rhs: Tensor) -> Tensor<Bool>
  • Devuelve un tensor de escalares booleanos calculando lhs > rhs por elementos.

    Declaración

    public static func .> (lhs: Tensor, rhs: Tensor) -> Tensor<Bool>
  • Devuelve un tensor de escalares booleanos calculando lhs >= rhs por elementos.

    Declaración

    public static func .>= (lhs: Tensor, rhs: Tensor) -> Tensor<Bool>
  • Devuelve un tensor de escalares booleanos calculando lhs < rhs por elementos.

    Nota

    .< admite transmisión.

    Declaración

    public static func .< (lhs: Scalar, rhs: Tensor) -> Tensor<Bool>
  • Devuelve un tensor de escalares booleanos calculando lhs <= rhs por elementos.

    Nota

    .<= admite transmisión.

    Declaración

    public static func .<= (lhs: Scalar, rhs: Tensor) -> Tensor<Bool>
  • Devuelve un tensor de escalares booleanos calculando lhs > rhs por elementos.

    Nota

    .> admite transmisión.

    Declaración

    public static func .> (lhs: Scalar, rhs: Tensor) -> Tensor<Bool>
  • Devuelve un tensor de escalares booleanos calculando lhs >= rhs por elementos.

    Nota

    .>= admite transmisión.

    Declaración

    public static func .>= (lhs: Scalar, rhs: Tensor) -> Tensor<Bool>
  • Devuelve un tensor de escalares booleanos calculando lhs < rhs por elementos.

    Nota

    .< admite transmisión.

    Declaración

    public static func .< (lhs: Tensor, rhs: Scalar) -> Tensor<Bool>
  • Devuelve un tensor de escalares booleanos calculando lhs <= rhs por elementos.

    Nota

    .<= admite transmisión.

    Declaración

    public static func .<= (lhs: Tensor, rhs: Scalar) -> Tensor<Bool>
  • Devuelve un tensor de escalares booleanos calculando lhs > rhs por elementos.

    Nota

    .> admite transmisión.

    Declaración

    public static func .> (lhs: Tensor, rhs: Scalar) -> Tensor<Bool>
  • Devuelve un tensor de escalares booleanos calculando lhs >= rhs por elementos.

    Nota

    .>= admite transmisión.

    Declaración

    public static func .>= (lhs: Tensor, rhs: Scalar) -> Tensor<Bool>
Disponible donde `Scalar`: `Equatable`
  • Devuelve un tensor de escalares booleanos calculando lhs == rhs por elementos.

    Nota

    .== admite transmisión.

    Declaración

    public static func .== (lhs: Tensor, rhs: Tensor) -> Tensor<Bool>
  • Devuelve un tensor de escalares booleanos calculando lhs != rhs por elementos.

    Nota

    .!= admite transmisión.

    Declaración

    public static func .!= (lhs: Tensor, rhs: Tensor) -> Tensor<Bool>
  • Devuelve un tensor de escalares booleanos calculando lhs == rhs por elementos.

    Nota

    .== admite transmisión.

    Declaración

    public static func .== (lhs: Scalar, rhs: Tensor) -> Tensor<Bool>
  • Devuelve un tensor de escalares booleanos calculando lhs != rhs por elementos.

    Nota

    .!= admite transmisión.

    Declaración

    public static func .!= (lhs: Scalar, rhs: Tensor) -> Tensor<Bool>
  • Devuelve un tensor de escalares booleanos calculando lhs == rhs por elementos.

    Nota

    .== admite transmisión.

    Declaración

    public static func .== (lhs: Tensor, rhs: Scalar) -> Tensor<Bool>
  • Devuelve un tensor de escalares booleanos calculando lhs != rhs por elementos.

    Nota

    .!= admite transmisión.

    Declaración

    public static func .!= (lhs: Tensor, rhs: Scalar) -> Tensor<Bool>
Disponible donde `Scalar`: `TensorFlowFloatingPoint` y `Equatable`
  • Devuelve un tensor de valores booleanos que indica si los elementos de self son aproximadamente iguales a los de other .

    Condición previa

    self y other deben tener la misma forma.

    Declaración

    public func elementsAlmostEqual(
      _ other: Tensor,
      tolerance: Scalar = Scalar.ulpOfOne.squareRoot()
    ) -> Tensor<Bool>
Disponible donde `Scalar`: `TensorFlowFloatingPoint`
  • Devuelve true si todos los elementos de self son aproximadamente iguales a los de other .

    Condición previa

    self y other deben tener la misma forma.

    Declaración

    public func isAlmostEqual(
      to other: Tensor,
      tolerance: Scalar = Scalar.ulpOfOne.squareRoot()
    ) -> Bool
Disponible donde `Scalar`: `TensorFlowNumeric`
  • Ejecuta una suma de réplicas cruzadas para este tensor. La misma suma de réplicas cruzadas debe ocurrir en cada uno de los demás dispositivos que participan en la suma.

    Declaración

    public mutating mutating func crossReplicaSum(_ scale: Double)
Disponible donde `Scalar`: `TensorFlowFloatingPoint`
Disponible donde `Escalar`: `Numérico`
  • Realice una conversión de tipo por elementos desde un tensor Bool .

    Declaración

    public init(_ other: Tensor<Bool>)
  • Realice una conversión de elementos desde otro Tensor .

    Declaración

    @differentiable
    public init<OtherScalar>(_ other: Tensor<OtherScalar>) where OtherScalar : Numeric, OtherScalar : TensorFlowScalar
Disponible donde `Scalar`: `TensorFlowFloatingPoint`
Disponible donde `Escalar`: `Numérico`
  • Crea un tensor con todos los escalares establecidos en cero.

    Declaración

    public init(zeros shape: TensorShape, on device: Device = .default)

    Parámetros

    shape

    Forma del tensor.

  • Crea un tensor con todos los escalares establecidos en uno.

    Declaración

    public init(ones shape: TensorShape, on device: Device = .default)

    Parámetros

    shape

    Forma del tensor.

  • Crea un tensor con todos los escalares establecidos en cero que tiene la misma forma y tipo que el tensor proporcionado.

    Declaración

    public init(zerosLike other: Tensor)

    Parámetros

    other

    Tensor cuya forma y tipo de datos utilizar.

  • Crea un tensor con todos los escalares establecidos en uno que tenga la misma forma y tipo que el tensor proporcionado.

    Declaración

    public init(onesLike other: Tensor)

    Parámetros

    other

    Tensor cuya forma y tipo de datos utilizar.

  • Crea un tensor 1-D que representa una secuencia desde un valor inicial hasta un valor final, pero sin incluirlo, avanzando en la cantidad especificada.

    Declaración

    public init(
      rangeFrom start: Scalar, to end: Scalar, stride: Scalar,
      on device: Device = .default
    )

    Parámetros

    start

    El valor inicial que se utilizará para la secuencia. Si la secuencia contiene algún valor, el primero es start .

    end

    Un valor final para limitar la secuencia. end nunca es un elemento de la secuencia resultante.

    stride

    La cantidad a seguir con cada iteración. stride debe ser positivo.

  • Crea un tensor 1-D que representa una secuencia desde un valor inicial hasta un valor final, pero sin incluirlo, avanzando en la cantidad especificada.

    Declaración

    public init(rangeFrom start: Tensor<Scalar>, to end: Tensor<Scalar>, stride: Tensor<Scalar>)

    Parámetros

    start

    El valor inicial que se utilizará para la secuencia. Si la secuencia contiene algún valor, el primero es start .

    end

    Un valor final para limitar la secuencia. end nunca es un elemento de la secuencia resultante.

    stride

    La cantidad a seguir con cada iteración. stride debe ser positivo.

  • Crea un tensor one-hot en índices dados. Las ubicaciones representadas por indices toman el valor onValue ( 1 de forma predeterminada), mientras que todas las demás ubicaciones toman el valor offValue ( 0 de forma predeterminada). Si los indices de entrada tienen rango n , el nuevo tensor tendrá rango n+1 . El nuevo eje se crea en axis de dimensión (de forma predeterminada, el nuevo eje se agrega al final).

    Si indices es un escalar, la forma del nuevo tensor será un vector de longitud depth .

    Si indices es un vector de features de longitud, la forma de salida será: características x profundidad, si eje == -1 profundidad x características, si eje == 0

    Si indices es una matriz (lote) con forma [batch, features] , la forma de salida será: lote x características x profundidad, si eje == -1 lote x profundidad x características, si eje == 1 profundidad x lote x características , si eje == 0

    Declaración

    public init(
      oneHotAtIndices indices: Tensor<Int32>,
      depth: Int,
      onValue: Scalar = 1,
      offValue: Scalar = 0,
      axis: Int = -1
    )

    Parámetros

    indices

    Un Tensor de índices.

    depth

    Un escalar que define la profundidad de una dimensión caliente.

    onValue

    Un escalar que define el valor en la ubicación a la que hace referencia algún índice en indices .

    offValue

    Un escalar que define el valor en una ubicación a la que ningún índice hace referencia en indices .

    axis

    El eje a llenar. El valor predeterminado es -1 , un nuevo eje más interno.

Disponible donde `Scalar`: `TensorFlowFloatingPoint`
  • Crea un tensor 1-D que representa una secuencia desde un valor inicial hasta un valor final incluido, espaciados uniformemente para generar el número de valores especificados.

    Declaración

    public init(
      linearSpaceFrom start: Scalar, to end: Scalar, count: Int, on device: Device = .default
    )

    Parámetros

    start

    El valor inicial que se utilizará para la secuencia. Si la secuencia contiene algún valor, el primero es start .

    end

    Un valor final para limitar la secuencia. end es el último elemento de la secuencia resultante.

    count

    El número de valores en la secuencia resultante. count debe ser positivo.

  • Crea un tensor 1-D que representa una secuencia desde un valor inicial hasta un valor final incluido, espaciados uniformemente para generar el número de valores especificados.

    Condición previa

    start , to y count deben ser tensores que contengan un único valor escalar.

    Declaración

    public init(linearSpaceFrom start: Tensor<Scalar>, to end: Tensor<Scalar>, count: Tensor<Int32>)

    Parámetros

    start

    El valor inicial que se utilizará para la secuencia. Si la secuencia contiene algún valor, el primero es start .

    end

    Un valor final para limitar la secuencia. end es el último elemento de la secuencia resultante.

    count

    El número de valores en la secuencia resultante. count debe ser positivo.

Disponible donde `Scalar`: `TensorFlowIndex`
  • Crea un tensor con la forma especificada, muestreando aleatoriamente valores escalares de una distribución uniforme entre lowerBound y upperBound .

    Declaración

    public init(
      randomUniform shape: TensorShape,
      lowerBound: Tensor<Scalar>? = nil,
      upperBound: Tensor<Scalar>? = nil,
      seed: TensorFlowSeed = Context.local.randomSeed,
      on device: Device = .default
    )

    Parámetros

    shape

    Las dimensiones del tensor.

    lowerBound

    El límite inferior de la distribución.

    upperBound

    El límite superior de la distribución.

    seed

    El valor de la semilla.

Disponible donde `Scalar`: `TensorFlowFloatingPoint`
  • Crea un tensor con la forma especificada, muestreando aleatoriamente valores escalares de una distribución uniforme entre lowerBound y upperBound .

    Declaración

    public init(
      randomUniform shape: TensorShape,
      lowerBound: Tensor<Scalar>? = nil,
      upperBound: Tensor<Scalar>? = nil,
      seed: TensorFlowSeed = Context.local.randomSeed,
      on device: Device = .default
    )

    Parámetros

    shape

    Las dimensiones del tensor.

    lowerBound

    El límite inferior de la distribución.

    upperBound

    El límite superior de la distribución.

    seed

    El valor de la semilla.

  • Crea un tensor con la forma especificada, muestreando aleatoriamente valores escalares de una distribución normal.

    Declaración

    public init(
      randomNormal shape: TensorShape,
      mean: Tensor<Scalar>? = nil,
      standardDeviation: Tensor<Scalar>? = nil,
      seed: TensorFlowSeed = Context.local.randomSeed,
      on device: Device = .default
    )

    Parámetros

    shape

    Las dimensiones del tensor.

    mean

    La media de la distribución.

    standardDeviation

    La desviación estándar de la distribución.

    seed

    El valor de la semilla.

  • Crea un tensor con la forma especificada, muestreando aleatoriamente valores escalares de una distribución Normal truncada.

    Declaración

    public init(
      randomTruncatedNormal shape: TensorShape,
      mean: Tensor<Scalar>? = nil,
      standardDeviation: Tensor<Scalar>? = nil,
      seed: TensorFlowSeed = Context.local.randomSeed,
      on device: Device = .default
    )

    Parámetros

    shape

    Las dimensiones del tensor.

    mean

    La media de la distribución.

    standardDeviation

    La desviación estándar de la distribución.

    seed

    El valor de la semilla.

Disponible donde `Scalar`: `TensorFlowIndex`
  • Crea un tensor extrayendo muestras de una distribución categórica.

    Declaración

    public init<T: TensorFlowFloatingPoint>(
      randomCategorialLogits: Tensor<T>,
      sampleCount: Int32,
      seed: TensorFlowSeed = Context.local.randomSeed
    )

    Parámetros

    randomCategorialLogits

    Tensor 2-D con forma [batchSize, classCount] . Cada segmento [i, :] representa las probabilidades de registro no normalizadas para todas las clases.

    sampleCount

    0-D. Número de muestras independientes que se extraerán para cada segmento de fila.

    seed

    El valor de la semilla.

    Valor de retorno

    Tensor 2-D con forma [batchSize, sampleCount] . Cada segmento [i, :] contiene las etiquetas de clase dibujadas con rango [0, classCount) .

Disponible donde `Scalar`: `TensorFlowFloatingPoint`
  • Crea un tensor con la forma especificada realizando una inicialización uniforme de Glorot (Xavier).

    Extrae muestras aleatorias de una distribución uniforme entre -limit y limit generado por el generador de números aleatorios predeterminado, donde limit es sqrt(6 / (fanIn + fanOut)) y fanIn / fanOut representan el número de características de entrada y salida multiplicadas por el receptivo. tamaño del campo.

    Referencia: "Comprender la dificultad de entrenar redes neuronales de retroalimentación profunda"

    Declaración

    public init(
      glorotUniform shape: TensorShape, seed: TensorFlowSeed = Context.local.randomSeed,
      on device: Device = .default
    )

    Parámetros

    shape

    Las dimensiones del tensor.

    seed

    El valor de la semilla.

  • Crea un tensor con la forma especificada realizando la inicialización normal de Glorot (Xavier).

    Extrae muestras aleatorias de una distribución normal truncada centrada en 0 con desviación estándar sqrt(2 / (fanIn + fanOut)) generada por el generador de números aleatorios predeterminado, donde fanIn / fanOut representan el número de características de entrada y salida multiplicadas por el campo receptivo. tamaño.

    Referencia: "Comprender la dificultad de entrenar redes neuronales de retroalimentación profunda"

    Declaración

    public init(
      glorotNormal shape: TensorShape, seed: TensorFlowSeed = Context.local.randomSeed,
      on device: Device = .default
    )

    Parámetros

    shape

    Las dimensiones del tensor.

    seed

    El valor de la semilla.

  • Crea un tensor con la forma especificada realizando una inicialización uniforme de He (Kaiming).

    Extrae muestras aleatorias de una distribución uniforme entre -limit y limit generado por el generador de números aleatorios predeterminado, donde limit es sqrt(6 / fanIn) y fanIn representa el número de características de entrada multiplicadas por el tamaño del campo receptivo.

    Referencia: "Profundizando en los rectificadores: superando el rendimiento a nivel humano en la clasificación ImageNet"

    Declaración

    public init(
      heUniform shape: TensorShape, seed: TensorFlowSeed = Context.local.randomSeed,
      on device: Device = .default
    )

    Parámetros

    shape

    Las dimensiones del tensor.

    seed

    El valor de la semilla.

  • Crea un tensor con la forma especificada realizando la inicialización normal He (Kaiming).

    Extrae muestras aleatorias de una distribución normal truncada centrada en 0 con desviación estándar sqrt(2 / fanIn)) generada por el generador de números aleatorios predeterminado, donde fanIn representa el número de características de entrada multiplicadas por el tamaño del campo receptivo.

    Referencia: "Profundizando en los rectificadores: superando el rendimiento a nivel humano en la clasificación ImageNet"

    Declaración

    public init(
      heNormal shape: TensorShape, seed: TensorFlowSeed = Context.local.randomSeed,
      on device: Device = .default
    )

    Parámetros

    shape

    Las dimensiones del tensor.

    seed

    El valor de la semilla.

  • Crea un tensor con la forma especificada realizando la inicialización uniforme de LeCun.

    Extrae muestras aleatorias de una distribución uniforme entre -limit y limit generada por el generador de números aleatorios predeterminado, donde limit es sqrt(3 / fanIn) y fanIn representa el número de características de entrada multiplicadas por el tamaño del campo receptivo.

    Referencia: “BackProp eficiente”

    Declaración

    public init(
      leCunUniform shape: TensorShape, seed: TensorFlowSeed = Context.local.randomSeed,
      on device: Device = .default
    )

    Parámetros

    shape

    Las dimensiones del tensor.

    seed

    El valor de la semilla.

  • Crea un tensor con la forma especificada realizando la inicialización normal de LeCun.

    Extrae muestras aleatorias de una distribución normal truncada centrada en 0 con desviación estándar sqrt(1 / fanIn) generada por el generador de números aleatorios predeterminado, donde fanIn representa el número de características de entrada multiplicadas por el tamaño del campo receptivo.

    Referencia: “BackProp eficiente”

    Declaración

    public init(
      leCunNormal shape: TensorShape, seed: TensorFlowSeed = Context.local.randomSeed,
      on device: Device = .default
    )

    Parámetros

    shape

    Las dimensiones del tensor.

    seed

    El valor de la semilla.

  • Crea una matriz ortogonal o tensor.

    Si la forma del tensor a inicializar es bidimensional, se inicializa con una matriz ortogonal obtenida de la descomposición QR de una matriz de números aleatorios extraída de una distribución normal. Si la matriz tiene menos filas que columnas, la salida tendrá filas ortogonales. De lo contrario, la salida tendrá columnas ortogonales.

    Si la forma del tensor a inicializar es más que bidimensional, se inicializa una matriz de forma [shape[0] * ... * shape[rank - 2], shape[rank - 1]] . Posteriormente se reforma la matriz para dar un tensor de la forma deseada.

    Declaración

    public init(
      orthogonal shape: TensorShape,
      gain: Tensor<Scalar> = Tensor<Scalar>(1),
      seed: TensorFlowSeed = Context.local.randomSeed
    )

    Parámetros

    shape

    La forma del tensor.

    gain

    Un factor multiplicativo para aplicar al tensor ortogonal.

    seed

    Una tupla de dos números enteros para generar el generador de números aleatorios.

Disponible donde `Scalar`: `TensorFlowNumeric`
  • Devuelve la parte diagonal [por lotes] de un tensor [por lotes]. Para la instancia tensor de la forma [..., M, N] , la salida es un tensor de la forma [..., K] , donde K es igual a min(N, M) .

    Por ejemplo:

    // 't' is [[1, 0, 0, 0]
    //         [0, 2, 0, 0]
    //         [0, 0, 3, 0]
    //         [0, 0, 0, 4]]
    t.diagonalPart()
    // [1, 2, 3, 4]
    

    Declaración

    @differentiable
    public func diagonalPart() -> Tensor
  • Construye una matriz diagonal [por lotes]. Para la instancia tensor de la forma [..., M] , la salida es un tensor de la forma [..., M, M] .

    Por ejemplo:

    // 't' is [1, 2, 3, 4]
    
    t.diagonal()
    // [[1, 0, 0, 0]
    //  [0, 2, 0, 0]
    //  [0, 0, 3, 0]
    //  [0, 0, 0, 4]]
    

    Declaración

    @differentiable
    public func diagonal() -> Tensor
  • Devuelve self con nuevos valores diagonales, dado que self es una matriz por lotes opcional.

    El tensor devuelto tiene la misma forma y valores que self , excepto las diagonales especificadas de las matrices más internas que se sobrescriben con los valores en diagonal .

    Diagonal de parámetro: un tensor con rank - 1 que representa los nuevos valores de la diagonal.

    Declaración

    public func withDiagonal(_ diagonal: Tensor<Scalar>) -> Tensor
  • Declaración

    @differentiable(wrt: self)
    public func bandPart(_ subdiagonalCount: Int, _ superdiagonalCount: Int) -> Tensor
  • Devuelve una copia de un tensor más interno definido por los límites de una banda central. La salida es un tensor de la misma forma que la instancia [..., :, :] .

    Por ejemplo:

    // 't' is [[ 0,  1,  2, 3]
    //         [-1,  0,  1, 2]
    //         [-2, -1,  0, 1]
    //         [-3, -2, -1, 0]]
    
    t.bandPart(1, -1)
    // [[ 0,  1,  2, 3]
    //  [-1,  0,  1, 2]
    //  [ 0, -1,  0, 1]
    //  [ 0,  0, -1, 0]]
    
    t.bandPart(2, 1)
    // [[ 0,  1,  0, 0]
    //  [-1,  0,  1, 0]
    //  [-2, -1,  0, 1]
    //  [ 0, -2, -1, 0]]
    

    Declaración

    @differentiable
    public func bandPart(subdiagonalCount: Int, superdiagonalCount: Int) -> Tensor

    Parámetros

    subdiagonalCount

    El número de subdiagonales a mantener. Si es negativo, conserve todo el triángulo inferior.

    superdiagonalCount

    El número de superdiagonales a mantener. Si es negativo, conserve todo el triángulo superior.

Disponible donde `Scalar`: `TensorFlowFloatingPoint`
  • Devuelve la descomposición QR de cada matriz interna en el tensor, un tensor con matrices ortogonales internas q y un tensor con matrices triangulares superiores internas r , de modo que el tensor es igual a matmul(q, r) .

    Declaración

    public func qrDecomposition(fullMatrices: Bool = false) -> (
      q: Tensor<Scalar>, r: Tensor<Scalar>
    )

    Parámetros

    fullMatrices

    Si es true , calcule q y r en tamaño completo. De lo contrario, calcule solo las columnas min(shape[rank - 1], shape[rank - 2]) principales de q .

  • Devuelve la descomposición del valor singular de self , dado que self es una matriz por lotes opcional.

    La descomposición en valores singulares (SVD) de la matriz self opcionalmente por lotes son los valores s , u y v , tales que:

    self[..., :, :] = u[..., :, :]  s[..., :, :].diagonal()  v[..., :, :].transposed()`
    

    self must be a tensor with shape […, M, N] . Let K = mín(M, N)`.

    Condición previa

    self debe ser un tensor con forma [..., M, N] .

    Declaración

    public func svd(computeUV: Bool = true, fullMatrices: Bool = false) -> (
      s: Tensor<Scalar>, u: Tensor<Scalar>?, v: Tensor<Scalar>?
    )

    Parámetros

    computeUV

    Si es true , los vectores singulares izquierdo y derecho se calculan y se devuelven como u y v , respectivamente. Si es false , se devuelven valores nil como u y v .

    fullMatrices

    Si true , u y v respectivamente tienen formas [..., M, M] y [..., N, N] . Si es false , u y v respectivamente tienen formas [..., M, K] y [..., K, N] . Se ignora cuando computeUV es falso.

    Valor de retorno

    • s: Los valores singulares, con forma [..., K] . Dentro de cada vector, los valores singulares se ordenan en orden descendente.
    • u: Los vectores singulares de la izquierda.
    • v: Los vectores singulares correctos.
  • La raíz cuadrada de x .

    Para tipos reales, si x es negativo, el resultado es .nan . Para tipos complejos hay un corte de rama en el eje real negativo.

    Declaración

    @differentiable
    public static func sqrt(_ x: `Self`) -> Tensor<Scalar>
  • El coseno de x , interpretado como un ángulo en radianes.

    Declaración

    @differentiable
    public static func cos(_ x: `Self`) -> Tensor<Scalar>
  • El seno de x , interpretado como un ángulo en radianes.

    Declaración

    @differentiable
    public static func sin(_ x: `Self`) -> Tensor<Scalar>
  • La tangente de x , interpretada como un ángulo en radianes.

    Declaración

    @differentiable
    public static func tan(_ x: `Self`) -> Tensor<Scalar>
  • El coseno inverso de x en radianes.

    Declaración

    @differentiable
    public static func acos(_ x: `Self`) -> Tensor<Scalar>
  • El seno inverso de x en radianes.

    Declaración

    @differentiable
    public static func asin(_ x: `Self`) -> Tensor<Scalar>
  • La tangente inversa de x en radianes.

    Declaración

    @differentiable
    public static func atan(_ x: `Self`) -> Tensor<Scalar>
  • El coseno hiperbólico de x .

    Declaración

    @differentiable
    public static func cosh(_ x: `Self`) -> Tensor<Scalar>
  • El seno hiperbólico de x .

    Declaración

    @differentiable
    public static func sinh(_ x: `Self`) -> Tensor<Scalar>
  • La tangente hiperbólica de x .

    Declaración

    @differentiable
    public static func tanh(_ x: `Self`) -> Tensor<Scalar>
  • El coseno hiperbólico inverso de x .

    Declaración

    @differentiable
    public static func acosh(_ x: `Self`) -> Tensor<Scalar>
  • El seno hiperbólico inverso de x .

    Declaración

    @differentiable
    public static func asinh(_ x: `Self`) -> Tensor<Scalar>
  • La tangente hiperbólica inversa de x .

    Declaración

    @differentiable
    public static func atanh(_ x: `Self`) -> Tensor<Scalar>
  • La función exponencial aplicada a x , o e**x .

    Declaración

    @differentiable
    public static func exp(_ x: `Self`) -> Tensor<Scalar>
  • Dos elevado a la potencia x .

    Declaración

    @differentiable
    public static func exp2(_ x: `Self`) -> Tensor<Scalar>
  • Diez elevado a la potencia x .

    Declaración

    @differentiable
    public static func exp10(_ x: `Self`) -> Tensor<Scalar>
  • exp(x) - 1 evaluado para preservar una precisión cercana a cero.

    Declaración

    @differentiable
    public static func expm1(_ x: `Self`) -> Tensor<Scalar>
  • El logaritmo natural de x .

    Declaración

    @differentiable
    public static func log(_ x: `Self`) -> Tensor<Scalar>
  • El logaritmo en base dos de x .

    Declaración

    @differentiable
    public static func log2(_ x: `Self`) -> Tensor<Scalar>
  • El logaritmo de base diez de x .

    Declaración

    @differentiable
    public static func log10(_ x: `Self`) -> Tensor<Scalar>
  • log(1 + x) evaluado para preservar una precisión cercana a cero.

    Declaración

    @differentiable
    public static func log1p(_ x: `Self`) -> Tensor<Scalar>
  • exp(y log(x)) calculado sin pérdida de precisión intermedia.

    Para tipos reales, si x es negativo el resultado es NaN, incluso si y tiene un valor entero. Para tipos complejos, hay un corte de rama en el eje real negativo.

    Declaración

    @differentiable
    public static func pow(_ x: `Self`, _ y: `Self`) -> Tensor<Scalar>
  • x elevado a la n potencia.

    El producto de n copias de x .

    Declaración

    @differentiable
    public static func pow(_ x: `Self`, _ n: Int) -> Tensor<Scalar>
  • La n ésima raíz de x .

    Para tipos reales, si x es negativo y n es par, el resultado es NaN. Para tipos complejos, hay una rama cortada a lo largo del eje real negativo.

    Declaración

    @differentiable
    public static func root(_ x: `Self`, _ n: Int) -> Tensor<Scalar>
  • Declaración

    public typealias VectorSpaceScalar = Float
  • Declaración

    public func scaled(by scale: Float) -> Tensor<Scalar>
  • Declaración

    public func adding(_ scalar: Float) -> Tensor<Scalar>
  • Declaración

    public func subtracting(_ scalar: Float) -> Tensor<Scalar>
Disponible donde `Escalar`: `Numérico`
  • Agrega el escalar a cada escalar del tensor y produce la suma.

    Declaración

    @differentiable
    public static func + (lhs: Scalar, rhs: Tensor) -> Tensor
  • Agrega el escalar a cada escalar del tensor y produce la suma.

    Declaración

    @differentiable
    public static func + (lhs: Tensor, rhs: Scalar) -> Tensor
  • Resta el escalar de cada escalar del tensor y produce la diferencia.

    Declaración

    @differentiable
    public static func - (lhs: Scalar, rhs: Tensor) -> Tensor
  • Resta el escalar de cada escalar del tensor y produce la diferencia.

    Declaración

    @differentiable
    public static func - (lhs: Tensor, rhs: Scalar) -> Tensor
  • Agrega dos tensores y almacena el resultado en la variable del lado izquierdo.

    Nota

    += admite transmisión.

    Declaración

    public static func += (lhs: inout Tensor, rhs: Tensor)
  • Agrega el escalar a cada escalar del tensor y almacena el resultado en la variable del lado izquierdo.

    Declaración

    public static func += (lhs: inout Tensor, rhs: Scalar)
  • Resta el segundo tensor del primero y almacena el resultado en la variable del lado izquierdo.

    Nota

    -= admite transmisión.

    Declaración

    public static func -= (lhs: inout Tensor, rhs: Tensor)
  • Resta el escalar de cada escalar del tensor y almacena el resultado en la variable del lado izquierdo.

    Declaración

    public static func -= (lhs: inout Tensor, rhs: Scalar)
  • Devuelve el tensor obtenido al multiplicar los dos tensores.

    Nota

    * admite transmisión.

    Declaración

    @differentiable
    public static func * (lhs: Tensor, rhs: Tensor) -> Tensor
  • Devuelve el tensor multiplicándolo por cada escalar del tensor.

    Declaración

    @differentiable
    public static func * (lhs: Scalar, rhs: Tensor) -> Tensor
  • Multiplica el escalar por cada escalar del tensor y produce el producto.

    Declaración

    @differentiable
    public static func * (lhs: Tensor, rhs: Scalar) -> Tensor
  • Multiplica dos tensores y almacena el resultado en la variable del lado izquierdo.

    Nota

    *= admite transmisión.

    Declaración

    public static func *= (lhs: inout Tensor, rhs: Tensor)
  • Multiplica el tensor por el escalar, transmite el escalar y almacena el resultado en la variable del lado izquierdo.

    Declaración

    public static func *= (lhs: inout Tensor, rhs: Scalar)
  • Devuelve el cociente de dividir el primer tensor por el segundo.

    Nota

    / admite transmisión.

    Declaración

    @differentiable
    public static func / (lhs: Tensor, rhs: Tensor) -> Tensor
  • Devuelve el cociente de dividir el escalar por el tensor, transmitiendo el escalar.

    Declaración

    @differentiable
    public static func / (lhs: Scalar, rhs: Tensor) -> Tensor
  • Devuelve el cociente de dividir el tensor por el escalar, transmitiendo el escalar.

    Declaración

    @differentiable
    public static func / (lhs: Tensor, rhs: Scalar) -> Tensor
  • Divide el primer tensor por el segundo y almacena el cociente en la variable del lado izquierdo.

    Declaración

    public static func /= (lhs: inout Tensor, rhs: Tensor)
  • Divide el tensor por el escalar, transmitiendo el escalar y almacena el cociente en la variable del lado izquierdo.

    Declaración

    public static func /= (lhs: inout Tensor, rhs: Scalar)
  • Devuelve el resto de dividir el primer tensor por el segundo.

    Nota

    % admite la transmisión.

    Declaración

    public static func % (lhs: Tensor, rhs: Tensor) -> Tensor
  • Devuelve el resto de dividir el tensor por el escalar, transmitiendo el escalar.

    Declaración

    public static func % (lhs: Tensor, rhs: Scalar) -> Tensor
  • Devuelve el resto de dividir el escalar por el tensor, transmitiendo el escalar.

    Declaración

    public static func % (lhs: Scalar, rhs: Tensor) -> Tensor
  • Divide el primer tensor por el segundo y almacena el resto en la variable del lado izquierdo.

    Declaración

    public static func %= (lhs: inout Tensor, rhs: Tensor)
  • Divide el tensor por el escalar y almacena el resto en la variable del lado izquierdo.

    Declaración

    public static func %= (lhs: inout Tensor, rhs: Scalar)
Disponible donde `Scalar` == `Bool`
  • ¿Devuelve !self

    Declaración

    public func elementsLogicalNot() -> Tensor
  • Devuelve self && other elemento en cuanto a elementos.

    Nota

    && admite la transmisión.

    Declaración

    public func elementsLogicalAnd(_ other: Tensor) -> Tensor
  • Devuelve self && other elementos en cuanto a elementos, transmitiendo other .

    Declaración

    public func elementsLogicalAnd(_ other: Scalar) -> Tensor
  • Devuelve self || other elemento en cuanto a elementos.

    Declaración

    public func elementsLogicalOr(_ other: Tensor) -> Tensor
  • Devuelve self || other elementos en cuanto a elementos, transmitiendo other .

    Declaración

    public func elementsLogicalOr(_ other: Scalar) -> Tensor
Disponible donde 'Scalar`: `tensorflownumeric`
  • Devuelve max(min(self, max), min) .

    Declaración

    @differentiable
    public func clipped(min: Tensor, max: Tensor) -> Tensor
  • Devuelve max(min(self, max), min) .

    Declaración

    @differentiable(wrt: (self, min)
    ) public func clipped(min: Tensor, max: Scalar) -> Tensor
  • Devuelve max(min(self, max), min) .

    Declaración

    @differentiable(wrt: (self, max)
    ) public func clipped(min: Scalar, max: Tensor) -> Tensor
  • Devuelve max(min(self, max), min) .

    Declaración

    @differentiable(wrt: self)
    public func clipped(min: Scalar, max: Scalar) -> Tensor
Disponible donde `Scalar`: `SignedNumeric`
  • Devuelve la negación del elemento tensor especificado.

    Declaración

    @differentiable
    public prefix static func - (rhs: Tensor) -> Tensor
Disponible donde 'Scalar`: `numérico`
  • Declaración

    @differentiable(wrt: self)
    public func squared() -> Tensor
Disponible donde 'Scalar`: `TensorFlowFloatingPoint`
  • Devuelve un tensor booleano que indica qué elementos de x son finitos.

    Declaración

    public var isFinite: Tensor<Bool> { get }
  • Devuelve un tensor booleano que indica qué elementos de x son infinitos.

    Declaración

    public var isInfinite: Tensor<Bool> { get }
  • Devuelve un tensor booleano que indica qué elementos de x tienen valor nan.

    Declaración

    public var isNaN: Tensor<Bool> { get }
Disponible donde `Scalar` == `Bool`
  • Devuelve true si todos los escalares son iguales a true . De lo contrario, devuelve false .

    Declaración

    public func all() -> Bool
  • Devuelve true si algún escalar es igual a true . De lo contrario, devuelve false .

    Declaración

    public func any() -> Bool
  • Realiza una lógica y una operación a lo largo de los ejes especificados. Se eliminan las dimensiones reducidas.

    Condición previa

    Cada valor en axes debe estar en el rango -rank..<rank .

    Declaración

    public func all(squeezingAxes axes: Int...) -> Tensor

    Parámetros

    axes

    Las dimensiones a reducir.

  • Realiza una lógica y una operación a lo largo de los ejes especificados. Se eliminan las dimensiones reducidas.

    Condición previa

    Cada valor en axes debe estar en el rango -rank..<rank .

    Declaración

    public func any(squeezingAxes axes: Int...) -> Tensor

    Parámetros

    axes

    Las dimensiones a reducir.

  • Realiza una lógica y una operación a lo largo de los ejes especificados. Las dimensiones reducidas se conservan con el valor 1.

    Condición previa

    Cada valor en axes debe estar en el rango -rank..<rank .

    Declaración

    public func all(alongAxes axes: Int...) -> Tensor

    Parámetros

    axes

    Las dimensiones a reducir.

  • Realiza una lógica u operación a lo largo de los ejes especificados. Las dimensiones reducidas se conservan con el valor 1.

    Condición previa

    Cada valor en axes debe estar en el rango -rank..<rank .

    Declaración

    public func any(alongAxes axes: Int...) -> Tensor

    Parámetros

    axes

    Las dimensiones a reducir.

Disponible donde 'Scalar`: `Numeric` &` Comparable`
  • Declaración

    @differentiable
    public func min() -> Tensor
  • Declaración

    @differentiable
    public func max() -> Tensor
  • Devuelve los valores máximos a lo largo de los ejes especificados. Se eliminan las dimensiones reducidas.

    Condición previa

    Cada valor en axes debe estar en el rango -rank..<rank .

    Declaración

    @differentiable(wrt: self)
    public func max(squeezingAxes axes: Tensor<Int32>) -> Tensor

    Parámetros

    axes

    Las dimensiones a reducir.

  • Devuelve los valores máximos a lo largo de los ejes especificados. Se eliminan las dimensiones reducidas.

    Condición previa

    Cada valor en axes debe estar en el rango -rank..<rank .

    Declaración

    @differentiable(wrt: self)
    public func max(squeezingAxes axes: [Int]) -> Tensor

    Parámetros

    axes

    Las dimensiones a reducir.

  • Devuelve los valores máximos a lo largo de los ejes especificados. Se eliminan las dimensiones reducidas.

    Condición previa

    Cada valor en axes debe estar en el rango -rank..<rank .

    Declaración

    @differentiable(wrt: self)
    public func max(squeezingAxes axes: Int...) -> Tensor

    Parámetros

    axes

    Las dimensiones a reducir.

  • Devuelve los valores mínimos a lo largo de los ejes especificados. Se eliminan las dimensiones reducidas.

    Condición previa

    Cada valor en axes debe estar en el rango -rank..<rank .

    Declaración

    @differentiable(wrt: self)
    public func min(squeezingAxes axes: Tensor<Int32>) -> Tensor

    Parámetros

    axes

    Las dimensiones a reducir.

  • Devuelve los valores mínimos a lo largo de los ejes especificados. Se eliminan las dimensiones reducidas.

    Condición previa

    Cada valor en axes debe estar en el rango -rank..<rank .

    Declaración

    @differentiable(wrt: self)
    public func min(squeezingAxes axes: [Int]) -> Tensor

    Parámetros

    axes

    Las dimensiones a reducir.

  • Devuelve los valores mínimos a lo largo de los ejes especificados. Se eliminan las dimensiones reducidas.

    Condición previa

    Cada valor en axes debe estar en el rango -rank..<rank .

    Declaración

    @differentiable(wrt: self)
    public func min(squeezingAxes axes: Int...) -> Tensor

    Parámetros

    axes

    Las dimensiones a reducir.

  • Devuelve los índices de los valores máximos a lo largo de los ejes especificados. Se eliminan las dimensiones reducidas.

    Condición previa

    Cada valor en axes debe estar en el rango -rank..<rank .

    Declaración

    public func argmax(squeezingAxis axis: Int) -> Tensor<Int32>

    Parámetros

    axes

    Las dimensiones a reducir.

  • Devuelve los índices de los valores mínimos a lo largo de los ejes especificados. Se eliminan las dimensiones reducidas.

    Condición previa

    Cada valor en axes debe estar en el rango -rank..<rank .

    Declaración

    public func argmin(squeezingAxis axis: Int) -> Tensor<Int32>

    Parámetros

    axes

    Las dimensiones a reducir.

  • Devuelve el mínimo a lo largo de los ejes especificados. Las dimensiones reducidas se conservan con el valor 1.

    Condición previa

    Cada valor en axes debe estar en el rango -rank..<rank .

    Declaración

    @differentiable(wrt: self)
    public func min(alongAxes axes: Tensor<Int32>) -> Tensor

    Parámetros

    axes

    Las dimensiones a reducir.

  • Devuelve el mínimo a lo largo de los ejes especificados. Las dimensiones reducidas se conservan con el valor 1.

    Condición previa

    Cada valor en axes debe estar en el rango -rank..<rank .

    Declaración

    @differentiable(wrt: self)
    public func min(alongAxes axes: [Int]) -> Tensor

    Parámetros

    axes

    Las dimensiones a reducir.

  • Devuelve el mínimo a lo largo de los ejes especificados. Las dimensiones reducidas se conservan con el valor 1.

    Condición previa

    Cada valor en axes debe estar en el rango -rank..<rank .

    Declaración

    @differentiable(wrt: self)
    public func min(alongAxes axes: Int...) -> Tensor

    Parámetros

    axes

    Las dimensiones a reducir.

  • Devuelve el mínimo a lo largo de los ejes especificados. Las dimensiones reducidas se conservan con el valor 1.

    Condición previa

    Cada valor en axes debe estar en el rango -rank..<rank .

    Declaración

    @differentiable(wrt: self)
    public func max(alongAxes axes: Tensor<Int32>) -> Tensor

    Parámetros

    axes

    Las dimensiones a reducir.

  • Devuelve el mínimo a lo largo de los ejes especificados. Las dimensiones reducidas se conservan con el valor 1.

    Condición previa

    Cada valor en axes debe estar en el rango -rank..<rank .

    Declaración

    @differentiable(wrt: self)
    public func max(alongAxes axes: [Int]) -> Tensor

    Parámetros

    axes

    Las dimensiones a reducir.

  • Devuelve el mínimo a lo largo de los ejes especificados. Las dimensiones reducidas se conservan con el valor 1.

    Condición previa

    Cada valor en axes debe estar en el rango -rank..<rank .

    Declaración

    @differentiable(wrt: self)
    public func max(alongAxes axes: Int...) -> Tensor

    Parámetros

    axes

    Las dimensiones a reducir.

  • Devuelve el índice del valor máximo de los escalares aplanados.

    Declaración

    public func argmax() -> Tensor<Int32>
  • Devuelve el índice del valor mínimo de los escalares aplanados.

    Declaración

    public func argmin() -> Tensor<Int32>
Disponible donde 'Scalar`: `numérico`
  • Devuelve la suma a lo largo de los ejes especificados. Se eliminan las dimensiones reducidas.

    Condición previa

    Cada valor en axes debe estar en el rango -rank...rank .

    Declaración

    @differentiable(wrt: self)
    public func sum(squeezingAxes axes: Tensor<Int32>) -> Tensor

    Parámetros

    axes

    Las dimensiones a reducir.

  • Devuelve la suma a lo largo de los ejes especificados. Se eliminan las dimensiones reducidas.

    Condición previa

    Cada valor en axes debe estar en el rango -rank...rank .

    Declaración

    @differentiable(wrt: self)
    public func sum(squeezingAxes axes: [Int]) -> Tensor

    Parámetros

    axes

    Las dimensiones a reducir.

  • Devuelve la suma a lo largo de los ejes especificados. Se eliminan las dimensiones reducidas.

    Condición previa

    Cada valor en axes debe estar en el rango -rank...rank .

    Declaración

    @differentiable(wrt: self)
    public func sum(squeezingAxes axes: Int...) -> Tensor

    Parámetros

    axes

    Las dimensiones a reducir.

  • Declaración

    @differentiable(wrt: self)
    public func sum() -> Tensor
  • Devuelve la suma a lo largo de los ejes especificados. Las dimensiones reducidas se conservan con el valor 1.

    Condición previa

    Cada valor en axes debe estar en el rango -rank..<rank .

    Declaración

    @differentiable(wrt: self)
    public func sum(alongAxes axes: Tensor<Int32>) -> Tensor

    Parámetros

    axes

    Las dimensiones a reducir.

  • Devuelve la suma a lo largo de los ejes especificados. Las dimensiones reducidas se conservan con el valor 1.

    Condición previa

    Cada valor en axes debe estar en el rango -rank..<rank .

    Declaración

    @differentiable(wrt: self)
    public func sum(alongAxes axes: [Int]) -> Tensor

    Parámetros

    axes

    Las dimensiones a reducir.

  • Devuelve la suma a lo largo de los ejes especificados. Las dimensiones reducidas se conservan con el valor 1.

    Condición previa

    Cada valor en axes debe estar en el rango -rank..<rank .

    Declaración

    @differentiable(wrt: self)
    public func sum(alongAxes axes: Int...) -> Tensor

    Parámetros

    axes

    Las dimensiones a reducir.

  • Devuelve el producto a lo largo de los ejes especificados. Se eliminan las dimensiones reducidas.

    Condición previa

    Cada valor en axes debe estar en el rango -rank...rank .

    Declaración

    @differentiable(wrt: self)
    public func product(squeezingAxes axes: Tensor<Int32>) -> Tensor

    Parámetros

    axes

    Las dimensiones a reducir.

  • Devuelve el producto a lo largo de los ejes especificados. Se eliminan las dimensiones reducidas.

    Condición previa

    Cada valor en axes debe estar en el rango -rank...rank .

    Declaración

    @differentiable(wrt: self)
    public func product(squeezingAxes axes: [Int]) -> Tensor

    Parámetros

    axes

    Las dimensiones a reducir.

  • Devuelve el producto a lo largo de los ejes especificados. Se eliminan las dimensiones reducidas.

    Condición previa

    Cada valor en axes debe estar en el rango -rank...rank .

    Declaración

    @differentiable(wrt: self)
    public func product(squeezingAxes axes: Int...) -> Tensor

    Parámetros

    axes

    Las dimensiones a reducir.

  • Declaración

    @differentiable(wrt: self)
    public func product() -> Tensor
  • Devuelve el producto a lo largo de los ejes especificados. Las dimensiones reducidas se conservan con el valor 1.

    Condición previa

    Cada valor en axes debe estar en el rango -rank..<rank .

    Declaración

    public func product(alongAxes axes: Tensor<Int32>) -> Tensor

    Parámetros

    axes

    Las dimensiones a reducir.

  • Devuelve el producto a lo largo de los ejes especificados. Las dimensiones reducidas se conservan con el valor 1.

    Condición previa

    Cada valor en axes debe estar en el rango -rank..<rank .

    Declaración

    public func product(alongAxes axes: [Int]) -> Tensor

    Parámetros

    axes

    Las dimensiones a reducir.

  • Devuelve el producto a lo largo de los ejes especificados. Las dimensiones reducidas se conservan con el valor 1.

    Condición previa

    Cada valor en axes debe estar en el rango -rank..<rank .

    Declaración

    public func product(alongAxes axes: Int...) -> Tensor

    Parámetros

    axes

    Las dimensiones a reducir.

  • Devuelve la media aritmética a lo largo de los ejes especificados. Se eliminan las dimensiones reducidas.

    Condición previa

    Cada valor en axes debe estar en el rango -rank...rank .

    Declaración

    @differentiable(wrt: self)
    public func mean(squeezingAxes axes: Tensor<Int32>) -> Tensor

    Parámetros

    axes

    Las dimensiones a reducir.

  • Devuelve la media aritmética a lo largo de los ejes especificados. Se eliminan las dimensiones reducidas.

    Condición previa

    Cada valor en axes debe estar en el rango -rank...rank .

    Declaración

    @differentiable(wrt: self)
    public func mean(squeezingAxes axes: [Int]) -> Tensor

    Parámetros

    axes

    Las dimensiones a reducir.

  • Devuelve la media aritmética a lo largo de los ejes especificados. Se eliminan las dimensiones reducidas.

    Condición previa

    Cada valor en axes debe estar en el rango -rank...rank .

    Declaración

    @differentiable(wrt: self)
    public func mean(squeezingAxes axes: Int...) -> Tensor

    Parámetros

    axes

    Las dimensiones a reducir.

  • Declaración

    @differentiable(wrt: self)
    public func mean() -> Tensor
  • Devuelve la media aritmética a lo largo de los ejes especificados. Las dimensiones reducidas se conservan con el valor 1.

    Condición previa

    Cada valor en axes debe estar en el rango -rank..<rank .

    Declaración

    @differentiable(wrt: self)
    public func mean(alongAxes axes: Tensor<Int32>) -> Tensor

    Parámetros

    axes

    Las dimensiones a reducir.

  • Devuelve la media aritmética a lo largo de los ejes especificados. Las dimensiones reducidas se conservan con el valor 1.

    Condición previa

    Cada valor en axes debe estar en el rango -rank..<rank .

    Declaración

    @differentiable(wrt: self)
    public func mean(alongAxes axes: [Int]) -> Tensor

    Parámetros

    axes

    Las dimensiones a reducir.

  • Devuelve la media aritmética a lo largo de los ejes especificados. Las dimensiones reducidas se conservan con el valor 1.

    Condición previa

    Cada valor en axes debe estar en el rango -rank..<rank .

    Declaración

    @differentiable(wrt: self)
    public func mean(alongAxes axes: Int...) -> Tensor

    Parámetros

    axes

    Las dimensiones a reducir.

  • Devuelve la varianza a lo largo de los ejes especificados. Se eliminan las dimensiones reducidas. No aplica la corrección de Bessel.

    Condición previa

    Cada valor en axes debe estar en el rango -rank..<rank .

    Declaración

    @differentiable(wrt: self)
    public func variance(squeezingAxes axes: Tensor<Int32>) -> Tensor

    Parámetros

    axes

    Las dimensiones a reducir.

  • Devuelve la varianza a lo largo de los ejes especificados. Se eliminan las dimensiones reducidas. No aplica la corrección de Bessel.

    Condición previa

    Cada valor en axes debe estar en el rango -rank..<rank .

    Declaración

    @differentiable(wrt: self)
    public func variance(squeezingAxes axes: [Int]) -> Tensor

    Parámetros

    axes

    Las dimensiones a reducir.

  • Devuelve la varianza a lo largo de los ejes especificados. Las dimensiones reducidas se conservan con el valor 1. No aplica la corrección de Bessel.

    Condición previa

    Cada valor en axes debe estar en el rango -rank..<rank .

    Declaración

    @differentiable(wrt: self)
    public func variance(squeezingAxes axes: Int...) -> Tensor

    Parámetros

    axes

    Las dimensiones a reducir.

  • Declaración

    @differentiable(wrt: self)
    public func variance() -> Tensor
  • Devuelve la varianza a lo largo de los ejes especificados. Las dimensiones reducidas se conservan con el valor 1. No aplica la corrección de Bessel.

    Condición previa

    Cada valor en axes debe estar en el rango -rank..<rank .

    Declaración

    @differentiable(wrt: self)
    public func variance(alongAxes axes: Tensor<Int32>) -> Tensor

    Parámetros

    axes

    Las dimensiones a reducir.

  • Devuelve la varianza a lo largo de los ejes especificados. Las dimensiones reducidas se conservan con el valor 1. No aplica la corrección de Bessel.

    Condición previa

    Cada valor en axes debe estar en el rango -rank..<rank .

    Declaración

    @differentiable(wrt: self)
    public func variance(alongAxes axes: [Int]) -> Tensor

    Parámetros

    axes

    Las dimensiones a reducir.

  • Devuelve la varianza a lo largo de los ejes especificados. Las dimensiones reducidas se conservan con el valor 1. No aplica la corrección de Bessel.

    Condición previa

    Cada valor en axes debe estar en el rango -rank..<rank .

    Declaración

    @differentiable(wrt: self)
    public func variance(alongAxes axes: Int...) -> Tensor

    Parámetros

    axes

    Las dimensiones a reducir.

  • Devuelve la suma acumulativa de este tensor a lo largo del eje especificado. Por defecto, esta función realiza una suma acumulativa inclusiva, lo que significa que el primer elemento de la entrada es idéntico al primer elemento de la salida:

    Tensor<Float>([a, b, c]).cumulativeSum() = Tensor<Float>([a, a + b, a + b + c])
    

    Al establecer el argumento exclusive en true , se realiza una suma acumulativa exclusiva: en su lugar:

    Tensor<Float>([a, b, c]).cumulativeSum(exclusive: true) = Tensor<Float>([0, a, a + b])
    

    Al establecer el argumento reverse en true , la suma acumulativa se realiza en la dirección opuesta:

    Tensor<Float>([a, b, c]).cumulativeSum(reverse: true) ==
        Tensor<Float>([a + b + c, a + b, a])
    

    Esto es más eficiente que revertir por separado el tensor resultante.

    Condición previa

    axis debe estar en el rango -rank..<rank .

    Declaración

    @differentiable(wrt: self)
    public func cumulativeSum(
      alongAxis axis: Int,
      exclusive: Bool = false,
      reverse: Bool = false
    ) -> Tensor

    Parámetros

    axis

    Eje a lo largo del cual realizar la operación de suma acumulativa.

    exclusive

    Indica si realizar una suma acumulativa exclusiva.

    reverse

    Indica si realizar la suma acumulativa en orden invertido.

    Valor de retorno

    Resultado de la operación de suma acumulativa.

  • Devuelve la suma acumulativa de este tensor a lo largo del eje especificado. Por defecto, esta función realiza una suma acumulativa inclusiva, lo que significa que el primer elemento de la entrada es idéntico al primer elemento de la salida:

    Tensor<Float>([a, b, c]).cumulativeSum() = Tensor<Float>([a, a + b, a + b + c])
    

    Al establecer el argumento exclusive en true , se realiza una suma acumulativa exclusiva: en su lugar:

    Tensor<Float>([a, b, c]).cumulativeSum(exclusive: true) = Tensor<Float>([0, a, a + b])
    

    Al establecer el argumento reverse en true , la suma acumulativa se realiza en la dirección opuesta:

    Tensor<Float>([a, b, c]).cumulativeSum(reverse: true) ==
        Tensor<Float>([a + b + c, a + b, a])
    

    Esto es más eficiente que revertir por separado el tensor resultante.

    Condición previa

    axis.rank debe ser 0 .

    Condición previa

    axis debe estar en el rango -rank..<rank .

    Declaración

    @differentiable(wrt: self)
    public func cumulativeSum(
      alongAxis axis: Tensor<Int32>,
      exclusive: Bool = false,
      reverse: Bool = false
    ) -> Tensor

    Parámetros

    axis

    Eje a lo largo del cual realizar la operación de suma acumulativa.

    exclusive

    Indica si realizar una suma acumulativa exclusiva.

    reverse

    Indica si realizar la suma acumulativa en orden invertido.

    Valor de retorno

    Resultado de la operación de suma acumulativa.

  • Devuelve el producto acumulativo de este tensor a lo largo del eje especificado. Por defecto, esta función realiza un producto acumulativo inclusivo, lo que significa que el primer elemento de la entrada es idéntico al primer elemento de la salida:

    Tensor<Float>([a, b, c]).cumulativeProduct() = Tensor<Float>([a, a * b, a * b * c])
    

    Al establecer el argumento exclusive en true , en su lugar se realiza un producto acumulativo exclusivo:

    Tensor<Float>([a, b, c]).cumulativeProduct(exclusive: true) = Tensor<Float>([1, a, a * b])
    

    Al establecer el argumento reverse en true , el producto acumulativo se realiza en la dirección opuesta:

    Tensor<Float>([a, b, c]).cumulativeProduct(reverse: true) ==
        Tensor<Float>([a * b * c, a * b, a])
    

    Esto es más eficiente que revertir por separado el tensor resultante.

    Condición previa

    axis debe estar en el rango -rank..<rank .

    Declaración

    @differentiable(wrt: self)
    public func cumulativeProduct(
      alongAxis axis: Int,
      exclusive: Bool = false,
      reverse: Bool = false
    ) -> Tensor

    Parámetros

    axis

    Eje a lo largo del cual realizar la operación acumulativa del producto.

    exclusive

    Indica si realizar un producto acumulativo exclusivo.

    reverse

    Indica si realizar el producto acumulativo en orden invertido.

    Valor de retorno

    Resultado de la operación acumulada del producto.

  • Devuelve el producto acumulativo de este tensor a lo largo del eje especificado. Por defecto, esta función realiza un producto acumulativo inclusivo, lo que significa que el primer elemento de la entrada es idéntico al primer elemento de la salida:

    Tensor<Float>([a, b, c]).cumulativeProduct() = Tensor<Float>([a, a * b, a * b * c])
    

    Al establecer el argumento exclusive en true , en su lugar se realiza un producto acumulativo exclusivo:

    Tensor<Float>([a, b, c]).cumulativeProduct(exclusive: true) = Tensor<Float>([1, a, a * b])
    

    Al establecer el argumento reverse en true , el producto acumulativo se realiza en la dirección opuesta:

    Tensor<Float>([a, b, c]).cumulativeProduct(reverse: true) ==
        Tensor<Float>([a * b * c, a * b, a])
    

    Esto es más eficiente que revertir por separado el tensor resultante.

    Condición previa

    axis debe tener rango 0 .

    Condición previa

    axis debe estar en el rango -rank..<rank .

    Declaración

    @differentiable(wrt: self)
    public func cumulativeProduct(
      alongAxis axis: Tensor<Int32>,
      exclusive: Bool = false,
      reverse: Bool = false
    ) -> Tensor

    Parámetros

    axis

    Eje a lo largo del cual realizar la operación acumulativa del producto.

    exclusive

    Indica si realizar un producto acumulativo exclusivo.

    reverse

    Indica si realizar el producto acumulativo en orden invertido.

    Valor de retorno

    Resultado de la operación acumulada del producto.

Disponible donde 'Scalar`: `TensorFlowFloatingPoint`
  • Devuelve la desviación estándar de los elementos a lo largo de los ejes especificados. Las dimensiones reducidas se conservan con el valor 1 . No aplica la corrección de Bessel.

    Condición previa

    Cada valor en axes debe estar en el rango -rank..<rank .

    Declaración

    @differentiable(wrt: self)
    public func standardDeviation(squeezingAxes axes: Tensor<Int32>) -> Tensor

    Parámetros

    axes

    Las dimensiones a reducir.

  • Devuelve la desviación estándar de los elementos a lo largo de los ejes especificados. Las dimensiones reducidas se conservan con el valor 1 . No aplica la corrección de Bessel.

    Condición previa

    Cada valor en axes debe estar en el rango -rank..<rank .

    Declaración

    @differentiable(wrt: self)
    public func standardDeviation(squeezingAxes axes: [Int]) -> Tensor

    Parámetros

    axes

    Las dimensiones a reducir.

  • Devuelve la desviación estándar de los elementos a lo largo de los ejes especificados. Las dimensiones reducidas se conservan con el valor 1 . No aplica la corrección de Bessel.

    Condición previa

    Cada valor en axes debe estar en el rango -rank..<rank .

    Declaración

    @differentiable(wrt: self)
    public func standardDeviation(squeezingAxes axes: Int...) -> Tensor

    Parámetros

    axes

    Las dimensiones a reducir.

  • Devuelve la desviación estándar de todos los elementos en este tensor. No aplica la corrección de Bessel.

    Condición previa

    Cada valor en axes debe estar en el rango -rank..<rank .

    Declaración

    @differentiable(wrt: self)
    public func standardDeviation() -> Tensor
  • Devuelve la desviación estándar de los elementos a lo largo de los ejes especificados. Las dimensiones reducidas se conservan con el valor 1 . No aplica la corrección de Bessel.

    Condición previa

    Cada valor en axes debe estar en el rango -rank..<rank .

    Declaración

    @differentiable(wrt: self)
    public func standardDeviation(alongAxes axes: Tensor<Int32>) -> Tensor

    Parámetros

    axes

    Las dimensiones a reducir.

  • Devuelve la desviación estándar de los elementos a lo largo de los ejes especificados. Las dimensiones reducidas se conservan con el valor 1 . No aplica la corrección de Bessel.

    Condición previa

    Cada valor en axes debe estar en el rango -rank..<rank .

    Declaración

    @differentiable(wrt: self)
    public func standardDeviation(alongAxes axes: [Int]) -> Tensor

    Parámetros

    axes

    Las dimensiones a reducir.

  • Devuelve la desviación estándar de los elementos a lo largo de los ejes especificados. Las dimensiones reducidas se conservan con el valor 1 . No aplica la corrección de Bessel.

    Condición previa

    Cada valor en axes debe estar en el rango -rank..<rank .

    Declaración

    @differentiable(wrt: self)
    public func standardDeviation(alongAxes axes: Int...) -> Tensor

    Parámetros

    axes

    Las dimensiones a reducir.

  • Devuelve log(exp(self).sum(squeezingAxes: axes)) . Se eliminan las dimensiones reducidas.

    Esta función es más numéricamente estable que log(exp(self).sum(squeezingAxes: axes)) directamente. Evita los desbordamientos causados ​​por calcular la exp de grandes entradas y subfluos causados ​​por calcular el log de entradas pequeñas.

    Condición previa

    Cada valor en axes debe estar en el rango -rank..<rank .

    Declaración

    @differentiable(wrt: self)
    public func logSumExp(squeezingAxes axes: Tensor<Int32>) -> Tensor

    Parámetros

    axes

    Las dimensiones a reducir.

  • Devuelve log(exp(self).sum(squeezingAxes: axes)) . Se eliminan las dimensiones reducidas.

    Esta función es más numéricamente estable que log(exp(self).sum(squeezingAxes: axes)) directamente. Evita los desbordamientos causados ​​por calcular la exp de grandes entradas y subfluos causados ​​por calcular el log de entradas pequeñas.

    Condición previa

    Cada valor en axes debe estar en el rango -rank..<rank .

    Declaración

    @differentiable(wrt: self)
    public func logSumExp(squeezingAxes axes: [Int]) -> Tensor

    Parámetros

    axes

    Las dimensiones a reducir.

  • Devuelve log(exp(self).sum(squeezingAxes: axes)) . Se eliminan las dimensiones reducidas.

    Esta función es más numéricamente estable que log(exp(self).sum(squeezingAxes: axes)) directamente. Evita los desbordamientos causados ​​por calcular la exp de grandes entradas y subfluos causados ​​por calcular el log de entradas pequeñas.

    Condición previa

    Cada valor en axes debe estar en el rango -rank..<rank .

    Declaración

    @differentiable(wrt: self)
    public func logSumExp(squeezingAxes axes: Int...) -> Tensor

    Parámetros

    axes

    Las dimensiones a reducir.

  • Devuelve log(exp(self).sum()) . El resultado es un escalar.

    Esta función es más numéricamente estable que log(exp(self).sum()) directamente. Evita los desbordamientos causados ​​por calcular la exp de grandes entradas y subfluos causados ​​por calcular el log de entradas pequeñas.

    Declaración

    @differentiable(wrt: self)
    public func logSumExp() -> Tensor
  • Devuelve log(exp(self).sum(alongAxes: axes)) . Las dimensiones reducidas se conservan con el valor 1 .

    Esta función es más numéricamente estable que log(exp(self).sum(alongAxes: axes)) directamente. Evita los desbordamientos causados ​​por calcular la exp de grandes entradas y subfluos causados ​​por calcular el log de entradas pequeñas.

    Condición previa

    Cada valor en axes debe estar en el rango -rank..<rank .

    Declaración

    @differentiable(wrt: self)
    public func logSumExp(alongAxes axes: Tensor<Int32>) -> Tensor

    Parámetros

    axes

    Las dimensiones a reducir.

  • Devuelve log(exp(self).sum(alongAxes: axes)) . Las dimensiones reducidas se conservan con el valor 1 .

    Esta función es más numéricamente estable que log(exp(self).sum(alongAxes: axes)) directamente. Evita los desbordamientos causados ​​por calcular la exp de grandes entradas y subfluos causados ​​por calcular el log de entradas pequeñas.

    Condición previa

    Cada valor en axes debe estar en el rango -rank..<rank .

    Declaración

    @differentiable(wrt: self)
    public func logSumExp(alongAxes axes: [Int]) -> Tensor

    Parámetros

    axes

    Las dimensiones a reducir.

  • Devuelve log(exp(self).sum(alongAxes: axes)) . Las dimensiones reducidas se conservan con el valor 1 .

    Esta función es más numéricamente estable que log(exp(self).sum(alongAxes: axes)) directamente. Evita los desbordamientos causados ​​por calcular la exp de grandes entradas y subfluos causados ​​por calcular el log de entradas pequeñas.

    Condición previa

    Cada valor en axes debe estar en el rango -rank..<rank .

    Declaración

    @differentiable(wrt: self)
    public func logSumExp(alongAxes axes: Int...) -> Tensor

    Parámetros

    axes

    Las dimensiones a reducir.

  • Devuelve la media y la varianza de este tensor a lo largo de los ejes especificados. Se eliminan las dimensiones reducidas.

    Condición previa

    axes deben tener rango 1 .

    Condición previa

    Cada valor en axes debe estar en el rango -rank..<rank .

    Declaración

    @differentiable(wrt: self)
    public func moments(squeezingAxes axes: Tensor<Int32>) -> Moments<Scalar>

    Parámetros

    axes

    Las dimensiones a reducir.

  • Devuelve la media y la varianza de este tensor a lo largo de los ejes especificados. Se eliminan las dimensiones reducidas.

    Condición previa

    Cada valor en axes debe estar en el rango -rank..<rank .

    Declaración

    @differentiable(wrt: self)
    public func moments(squeezingAxes axes: [Int]) -> Moments<Scalar>

    Parámetros

    axes

    Las dimensiones a reducir.

  • Devuelve la media y la varianza de este tensor a lo largo de los ejes especificados. Se eliminan las dimensiones reducidas.

    Condición previa

    Cada valor en axes debe estar en el rango -rank..<rank .

    Declaración

    @differentiable(wrt: self)
    public func moments(squeezingAxes axes: Int...) -> Moments<Scalar>

    Parámetros

    axes

    Las dimensiones a reducir.

  • Devuelve la media y la varianza de los elementos de este tensor.

    Declaración

    @differentiable(wrt: self)
    public func moments() -> Moments<Scalar>
  • Devuelve la media y la varianza de este tensor a lo largo de los ejes especificados. Las dimensiones reducidas se conservan con el valor 1 .

    Condición previa

    axes deben tener rango 1 .

    Condición previa

    Cada valor en axes debe estar en el rango -rank..<rank .

    Declaración

    @differentiable(wrt: self)
    public func moments(alongAxes axes: Tensor<Int32>) -> Moments<Scalar>

    Parámetros

    axes

    Las dimensiones a reducir.

  • Devuelve la media y la varianza de este tensor a lo largo de los ejes especificados. Las dimensiones reducidas se conservan con el valor 1 .

    Condición previa

    Cada valor en axes debe estar en el rango -rank..<rank .

    Declaración

    @differentiable(wrt: self)
    public func moments(alongAxes axes: [Int]) -> Moments<Scalar>

    Parámetros

    axes

    Las dimensiones a reducir.

  • Devuelve la media y la varianza de este tensor a lo largo de los ejes especificados. Las dimensiones reducidas se conservan con el valor 1 .

    Condición previa

    Cada valor en axes debe estar en el rango -rank..<rank .

    Declaración

    @differentiable(wrt: self)
    public func moments(alongAxes axes: Int...) -> Moments<Scalar>

    Parámetros

    axes

    Las dimensiones a reducir.

Disponible donde 'Scalar`: `numérico`
  • Realiza la multiplicación de la matriz entre dos tensores y produce el resultado.

    Declaración

    @differentiable
    public static func  (lhs: Tensor, rhs: Tensor) -> Tensor
Disponible donde 'Scalar`: `TensorFlowFloatingPoint`
  • Declaración

    static func vjpInitDeviceAndPrecisionLike(
      _ value: Scalar,
      deviceAndPrecisionLike tensor: Tensor
    ) -> (value: Tensor, pullback: (Tensor) -> (Scalar, Tensor))
  • Devuelve un tensor calculado a partir de la normalidad por lotes la entrada a lo largo del eje especificado.

    Específicamente, los retornos (self - mu) / (var + epsilon) * gamma + beta donde mu y var son respectivamente la media y la varianza de self a lo largo axis .

    Declaración

    @differentiable(wrt: (self, offset, scale)
    public func batchNormalized(
      alongAxis axis: Int,
      offset: Tensor = Tensor(0),
      scale: Tensor = Tensor(1),
      epsilon: Scalar = 0.001
    ) -> Tensor

    Parámetros

    axis

    La dimensión de lote.

    offset

    El desplazamiento, también conocido como beta.

    scale

    La escala, también conocida como gamma.

    epsilon

    Un pequeño valor agregado al denominador para la estabilidad numérica.

  • Concatena dos tensores a lo largo del último eje.

    Declaración

    @differentiable
    public static func concatenate(_ lhs: Tensor, _ rhs: Tensor) -> Tensor
  • Suma dos valores y produce su suma.

    Declaración

    @differentiable
    public static func sum(_ lhs: Tensor, _ rhs: Tensor) -> Tensor
  • Promedia dos valores.

    Declaración

    @differentiable
    public static func average(_ lhs: Tensor, _ rhs: Tensor) -> Tensor
  • Multiplica dos valores.

    Declaración

    @differentiable
    public static func multiply(_ lhs: Tensor, _ rhs: Tensor) -> Tensor
  • Apila dos valores.

    Declaración

    @differentiable
    public static func stack(_ lhs: Tensor, _ rhs: Tensor) -> Tensor
  • Declaración

    @derivative
    init(shape: scalars)
Disponible donde 'Scalar`:' Equatable`
  • Declaración

    public static func == (lhs: Tensor, rhs: Tensor) -> Bool
  • Declaración

    public static func != (lhs: Tensor, rhs: Tensor) -> Bool
Disponible donde 'Scalar`:' Codable`
  • Declaración

    public func encode(to encoder: Encoder) throws
  • Declaración

    public init(from decoder: Decoder) throws
Disponible donde 'Scalar`: `numérico`
  • El tensor escalar cero.

  • Declaración

    public static var zero: Tensor { get }
  • Agrega dos tensores y produce su suma.

    Nota

    + Admite la transmisión.

    Declaración

    @differentiable
    public static func + (lhs: Tensor, rhs: Tensor) -> Tensor
  • Resta un tensor de otro y produce su diferencia.

    Nota

    - Admite la transmisión.

    Declaración

    @differentiable
    public static func - (lhs: Tensor, rhs: Tensor) -> Tensor
  • uno

    El tensor escalar.

    Declaración

    public static var one: Tensor { get }
  • Devuelve el elemento recíproco de self .

    Declaración

    public var reciprocal: Tensor { get }
  • Multiplica dos tensores en cuanto a elementos y produce su producto.

    Nota

    .* Admite la transmisión.

    Declaración

    public static func .* (lhs: Tensor, rhs: Tensor) -> Tensor
Disponible donde 'Scalar`: `TensorFlowFloatingPoint`
  • Declaración

    public typealias TangentVector = Tensor
  • Declaración

    public var zeroTangentVectorInitializer: () -> TangentVector { get }
  • Agrega una anotación.

    Nota: Solo se admite X10. Para otros backends, se devuelve self umodified.

    Declaración

    @differentiable(wrt: self)
    public func annotate(_ annotation: String) -> Tensor<Scalar>

    Parámetros

    annotation

    La anotación a agregar.

    Valor de retorno

    El tensor anotado.

  • Declaración

    @derivative
    func vjpAnnotate(_ annotation: String) -> (
      value: Tensor<Scalar>, pullback: (Tensor<Scalar>) -> Tensor<Scalar>
    )