@frozen
public struct Tensor<Scalar> where Scalar : TensorFlowScalar
extension Tensor: Collatable
extension Tensor: CopyableToDevice
extension Tensor: AnyTensor
extension Tensor: ExpressibleByArrayLiteral
extension Tensor: CustomStringConvertible
extension Tensor: CustomPlaygroundDisplayConvertible
extension Tensor: CustomReflectable
extension Tensor: TensorProtocol
extension Tensor: TensorGroup
extension Tensor: ElementaryFunctions where Scalar: TensorFlowFloatingPoint
extension Tensor: VectorProtocol where Scalar: TensorFlowFloatingPoint
extension Tensor: Mergeable where Scalar: TensorFlowFloatingPoint
extension Tensor: Equatable where Scalar: Equatable
extension Tensor: Codable where Scalar: Codable
extension Tensor: AdditiveArithmetic where Scalar: Numeric
extension Tensor: PointwiseMultiplicative where Scalar: Numeric
extension Tensor: Differentiable & EuclideanDifferentiable where Scalar: TensorFlowFloatingPoint
extension Tensor: DifferentiableTensorProtocol
where Scalar: TensorFlowFloatingPoint
Una 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)
. DesempaquetaN
tensores de este tensor cortándolos a lo largo de la dimensiónaxis
, dondeN
se infiere de la forma de este tensor. Por ejemplo, dado un tensor con forma[A, B, C, D]
:- Si
axis == 0
, entonces eli
-ésimo tensor en la matriz devuelta es el segmentoself[i, :, :, :]
y cada tensor en esa matriz tendrá forma[B, C, D]
. (Tenga en cuenta que la dimensión desempaquetada desapareció, a diferencia deTensor.split(numSplits:alongAxis)
oTensor.split(sizes:alongAxis)
). - Si
axis == 1
, entonces eli
-ésimo tensor en la matriz devuelta es elvalue[:, 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)
, donderank
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.
- Si
Divide un tensor en múltiples tensores. El tensor se divide a lo largo del
axis
de dimensión encount
más pequeños. Esto requiere quecount
divida uniformementeshape[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 delaxis
de dimensión de manera uniforme.Condición previa
axis
debe estar en el rango[-rank, rank)
, donderank
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 lai
-ésima pieza tiene la misma forma que este tensor excepto a lo largo delaxis
de dimensión donde el tamaño essizes[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 delaxis
de dimensión.Condición previa
axis
debe estar en el rango[-rank, rank)
, donderank
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. Lai
dimensión del tensor construido tiene elementosself.shape[i] * multiples[i]
, y los valores de este tensor se replicanmultiples[i]
veces a lo largo de lai
dimensión. Por ejemplo, colocar en mosaico[abcd]
por[2]
produce[abcdabcd]
.Condición previa
La forma demultiples
debe ser[tensor.rank]
.Condición previa
Todos los escalares enmultiples
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. Lai
dimensión del tensor construido tiene elementosself.shape[i] * multiples[i]
, y los valores de este tensor se replicanmultiples[i]
veces a lo largo de lai
dimensión. Por ejemplo, colocar en mosaico[abcd]
por[2]
produce[abcdabcd]
.Condición previa
La forma demultiples
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 especifican dimensiones, 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 enaxes
debe estar en el rango-rank..<rank
.Condición previa
No debe haber duplicación deaxes
.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 enaxes
debe estar en el rango-rank..<rank
.Condición previa
No debe haber duplicación deaxes
.Declaración
@differentiable(wrt: self) public func reversed(inAxes axes: [Int]) -> Tensor
Devuelve un tensor con dimensiones especificadas invertidas.
Condición previa
Cada valor enaxes
debe estar en el rango-rank..<rank
.Condición previa
No debe haber duplicación deaxes
.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ónaxis
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
yM = 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ónaxis
, ignorando las primeras dimensionesbatchDimensionCount
que corresponden a las dimensiones del 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 esshape[..<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 quebatchDimensionCount
.Condición previa
batchDimensionCount
debe ser menor queindices.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 lamask
debe coincidir con las primeras K dimensiones de la forma deltensor
. Entonces tenemos:tensor.gathering(where: mask)[i, j1, ..., jd] = tensor[i1, ..., iK, j1, ..., jd]
, donde[i1, ..., iK]
es lai
ésima entradatrue
demask
(orden de fila principal).El
axis
podría usarse conmask
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 lasdimensions 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, dondeK + axis <= self.rank
.Valor de retorno
(self.rank - K + 1)
tensor -dimensional poblado por entradas en este tensor correspondientes a valorestrue
enmask
.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 ejeself
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 ejeself
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 deself
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 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ónaxis
, en un nuevo tensor con rango uno superior al tensor actual y cada tensor entensors
.Dado que todos
tensors
tienen forma[A, B, C]
ytensors.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)
, donderank
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.
- Si
Concatena
tensors
a lo largo de la dimensiónaxis
.Dado que
tensors[i].shape = [D0, D1, ... Daxis(i), ...Dn]
, entonces el resultado concatenado tiene forma[D0, D1, ... Raxis, ...Dn]
, dondeRaxis = sum(Daxis(i))
. Es decir, los datos de los tensores de entrada se unen a lo largo de la dimensiónaxis
.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)
, donderank
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 dondemask
estrue
.Condición previa
self
yother
deben tener la misma forma. Siself
yother
son escalares, entoncesmask
también debe ser escalar. Siself
yother
tienen un rango mayor o igual a1
, entoncesmask
debe tener la misma forma queself
o ser unTensor
1-D tal quemask.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ísicoBFloat16
.Declaración
public var toReducedPrecision: `Self` { get }
Devuelve una copia del tipo
Scalar
físicoself
.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
sirank
es igual a 0 yfalse
en caso contrario.Declaración
public var isScalar: Bool { get }
Devuelve el elemento escalar único si
rank
es igual a 0 ynil
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
usefullDescription
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 deedgeElementCount
.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 }
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
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>
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>
Devuelve un tensor de valores booleanos que indica si los elementos de
self
son aproximadamente iguales a los deother
.Condición previa
self
yother
deben tener la misma forma.Declaración
public func elementsAlmostEqual( _ other: Tensor, tolerance: Scalar = Scalar.ulpOfOne.squareRoot() ) -> Tensor<Bool>
Devuelve
true
si todos los elementos deself
son aproximadamente iguales a los deother
.Condición previa
self
yother
deben tener la misma forma.Declaración
public func isAlmostEqual( to other: Tensor, tolerance: Scalar = Scalar.ulpOfOne.squareRoot() ) -> Bool
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)
Declaración
@derivative init(repeating: shape)
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
Declaración
@derivative init(_: <<error type>>)
Declaración
@derivative init(stacking: alongAxis)
Declaración
@derivative init(concatenating: alongAxis)
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 valoronValue
(1
de forma predeterminada), mientras que todas las demás ubicaciones toman el valoroffValue
(0
de forma predeterminada). Si losindices
de entrada tienen rangon
, el nuevo tensor tendrá rangon+1
. El nuevo eje se crea en elaxis
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 longituddepth
.Si
indices
es un vector defeatures
de longitud, la forma de salida será: características x profundidad, si eje == -1 profundidad x características, si eje == 0Si
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 == 0Declaració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.
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
ycount
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.
Crea un tensor con la forma especificada, muestreando aleatoriamente valores escalares de una distribución uniforme entre
lowerBound
yupperBound
.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 uniforme entre
lowerBound
yupperBound
.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.
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)
.
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
ylimit
generado por el generador de números aleatorios predeterminado, dondelimit
essqrt(6 / (fanIn + fanOut))
yfanIn
/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ándarsqrt(2 / (fanIn + fanOut))
generada por el generador de números aleatorios predeterminado, dondefanIn
/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
ylimit
generado por el generador de números aleatorios predeterminado, dondelimit
essqrt(6 / fanIn)
yfanIn
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ándarsqrt(2 / fanIn))
generada por el generador de números aleatorios predeterminado, dondefanIn
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
ylimit
generada por el generador de números aleatorios predeterminado, dondelimit
essqrt(3 / fanIn)
yfanIn
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ándarsqrt(1 / fanIn)
generada por el generador de números aleatorios predeterminado, dondefanIn
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.
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]
, dondeK
es igualmin(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 queself
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 endiagonal
.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.
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 internasr
, de modo que el tensor sea igual amatmul(q, r)
.Declaración
public func qrDecomposition(fullMatrices: Bool = false) -> ( q: Tensor<Scalar>, r: Tensor<Scalar> )
Parámetros
fullMatrices
Si es
true
, calculeq
yr
en tamaño completo. De lo contrario, calcule solo las columnasmin(shape[rank - 1], shape[rank - 2])
principales deq
.Devuelve la descomposición del valor singular de
self
, dado queself
es una matriz por lotes opcional.La descomposición en valores singulares (SVD) de la matriz
self
opcionalmente por lotes, son los valoress
,u
yv
, 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
true
, los vectores singulares izquierdo y derecho se calculan y se devuelven comou
yv
, respectivamente. Sifalse
, se devuelven valoresnil
comou
yv
.fullMatrices
Si
true
,u
yv
respectivamente tienen formas[..., M, M]
y[..., N, N]
. Si esfalse
,u
yv
respectivamente tienen formas[..., M, K]
y[..., K, N]
. Se ignora cuandocomputeUV
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.
- s: Los valores singulares, con forma
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
, oe**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 siy
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 lan
potencia.El producto de
n
copias dex
.Declaración
@differentiable public static func pow(_ x: `Self`, _ n: Int) -> Tensor<Scalar>
La
n
raíz dex
.Para tipos reales, si
x
es negativo yn
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>
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 la transmisión.Declaración
public static func *= (lhs: inout Tensor, rhs: Tensor)
Multiplica el tensor con el escalar, transmitiendo 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 la 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)
¿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, transmitiendoother
.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, transmitiendoother
.Declaración
public func elementsLogicalOr(_ other: Scalar) -> Tensor
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
Devuelve la negación del elemento tensor especificado.
Declaración
@differentiable public prefix static func - (rhs: Tensor) -> Tensor
Declaración
@differentiable(wrt: self) public func squared() -> Tensor
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 }
Devuelve
true
si todos los escalares son iguales atrue
. De lo contrario, devuelvefalse
.Declaración
public func all() -> Bool
Devuelve
true
si algún escalar es igual atrue
. De lo contrario, devuelvefalse
.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 enaxes
debe estar en el rango-rank..<rank
.Declaración
public func all(squeezingAxes axes: Int...) -> Tensor
Parámetros
axes
Las dimensiones para 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 enaxes
debe estar en el rango-rank..<rank
.Declaración
public func any(squeezingAxes axes: Int...) -> Tensor
Parámetros
axes
Las dimensiones para 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 enaxes
debe estar en el rango-rank..<rank
.Declaración
public func all(alongAxes axes: Int...) -> Tensor
Parámetros
axes
Las dimensiones para 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 enaxes
debe estar en el rango-rank..<rank
.Declaración
public func any(alongAxes axes: Int...) -> Tensor
Parámetros
axes
Las dimensiones para reducir.
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 enaxes
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 para reducir.
Devuelve los valores máximos a lo largo de los ejes especificados. Se eliminan las dimensiones reducidas.
Condición previa
Cada valor enaxes
debe estar en el rango-rank..<rank
.Declaración
@differentiable(wrt: self) public func max(squeezingAxes axes: [Int]) -> Tensor
Parámetros
axes
Las dimensiones para reducir.
Devuelve los valores máximos a lo largo de los ejes especificados. Se eliminan las dimensiones reducidas.
Condición previa
Cada valor enaxes
debe estar en el rango-rank..<rank
.Declaración
@differentiable(wrt: self) public func max(squeezingAxes axes: Int...) -> Tensor
Parámetros
axes
Las dimensiones para reducir.
Devuelve los valores mínimos a lo largo de los ejes especificados. Se eliminan las dimensiones reducidas.
Condición previa
Cada valor enaxes
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 para reducir.
Devuelve los valores mínimos a lo largo de los ejes especificados. Se eliminan las dimensiones reducidas.
Condición previa
Cada valor enaxes
debe estar en el rango-rank..<rank
.Declaración
@differentiable(wrt: self) public func min(squeezingAxes axes: [Int]) -> Tensor
Parámetros
axes
Las dimensiones para reducir.
Devuelve los valores mínimos a lo largo de los ejes especificados. Se eliminan las dimensiones reducidas.
Condición previa
Cada valor enaxes
debe estar en el rango-rank..<rank
.Declaración
@differentiable(wrt: self) public func min(squeezingAxes axes: Int...) -> Tensor
Parámetros
axes
Las dimensiones para 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 enaxes
debe estar en el rango-rank..<rank
.Declaración
public func argmax(squeezingAxis axis: Int) -> Tensor<Int32>
Parámetros
axes
Las dimensiones para 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 enaxes
debe estar en el rango-rank..<rank
.Declaración
public func argmin(squeezingAxis axis: Int) -> Tensor<Int32>
Parámetros
axes
Las dimensiones para 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 enaxes
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 para 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 enaxes
debe estar en el rango-rank..<rank
.Declaración
@differentiable(wrt: self) public func min(alongAxes axes: [Int]) -> Tensor
Parámetros
axes
Las dimensiones para 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 enaxes
debe estar en el rango-rank..<rank
.Declaración
@differentiable(wrt: self) public func min(alongAxes axes: Int...) -> Tensor
Parámetros
axes
Las dimensiones para 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 enaxes
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 para 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 enaxes
debe estar en el rango-rank..<rank
.Declaración
@differentiable(wrt: self) public func max(alongAxes axes: [Int]) -> Tensor
Parámetros
axes
Las dimensiones para 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 enaxes
debe estar en el rango-rank..<rank
.Declaración
@differentiable(wrt: self) public func max(alongAxes axes: Int...) -> Tensor
Parámetros
axes
Las dimensiones para 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>
Devuelve la suma a lo largo de los ejes especificados. Se eliminan las dimensiones reducidas.
Condición previa
Cada valor enaxes
debe estar en el rango de rango-rank...rank
.Declaración
@differentiable(wrt: self) public func sum(squeezingAxes axes: Tensor<Int32>) -> Tensor
Parámetros
axes
Las dimensiones para reducir.
Devuelve la suma a lo largo de los ejes especificados. Se eliminan las dimensiones reducidas.
Condición previa
Cada valor enaxes
debe estar en el rango de rango-rank...rank
.Declaración
@differentiable(wrt: self) public func sum(squeezingAxes axes: [Int]) -> Tensor
Parámetros
axes
Las dimensiones para reducir.
Devuelve la suma a lo largo de los ejes especificados. Se eliminan las dimensiones reducidas.
Condición previa
Cada valor enaxes
debe estar en el rango de rango-rank...rank
.Declaración
@differentiable(wrt: self) public func sum(squeezingAxes axes: Int...) -> Tensor
Parámetros
axes
Las dimensiones para 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 enaxes
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 para 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 enaxes
debe estar en el rango-rank..<rank
.Declaración
@differentiable(wrt: self) public func sum(alongAxes axes: [Int]) -> Tensor
Parámetros
axes
Las dimensiones para 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 enaxes
debe estar en el rango-rank..<rank
.Declaración
@differentiable(wrt: self) public func sum(alongAxes axes: Int...) -> Tensor
Parámetros
axes
Las dimensiones para reducir.
Devuelve el producto a lo largo de los ejes especificados. Se eliminan las dimensiones reducidas.
Condición previa
Cada valor enaxes
debe estar en el rango de rango-rank...rank
.Declaración
@differentiable(wrt: self) public func product(squeezingAxes axes: Tensor<Int32>) -> Tensor
Parámetros
axes
Las dimensiones para reducir.
Devuelve el producto a lo largo de los ejes especificados. Se eliminan las dimensiones reducidas.
Condición previa
Cada valor enaxes
debe estar en el rango de rango-rank...rank
.Declaración
@differentiable(wrt: self) public func product(squeezingAxes axes: [Int]) -> Tensor
Parámetros
axes
Las dimensiones para reducir.
Devuelve el producto a lo largo de los ejes especificados. Se eliminan las dimensiones reducidas.
Condición previa
Cada valor enaxes
debe estar en el rango de rango-rank...rank
.Declaración
@differentiable(wrt: self) public func product(squeezingAxes axes: Int...) -> Tensor
Parámetros
axes
Las dimensiones para 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 enaxes
debe estar en el rango-rank..<rank
.Declaración
public func product(alongAxes axes: Tensor<Int32>) -> Tensor
Parámetros
axes
Las dimensiones para 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 enaxes
debe estar en el rango-rank..<rank
.Declaración
public func product(alongAxes axes: [Int]) -> Tensor
Parámetros
axes
Las dimensiones para 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 enaxes
debe estar en el rango-rank..<rank
.Declaración
public func product(alongAxes axes: Int...) -> Tensor
Parámetros
axes
Las dimensiones para reducir.
Devuelve la media aritmética a lo largo de los ejes especificados. Se eliminan las dimensiones reducidas.
Condición previa
Cada valor enaxes
debe estar en el rango de rango-rank...rank
.Declaración
@differentiable(wrt: self) public func mean(squeezingAxes axes: Tensor<Int32>) -> Tensor
Parámetros
axes
Las dimensiones para reducir.
Devuelve la media aritmética a lo largo de los ejes especificados. Se eliminan las dimensiones reducidas.
Condición previa
Cada valor enaxes
debe estar en el rango de rango-rank...rank
.Declaración
@differentiable(wrt: self) public func mean(squeezingAxes axes: [Int]) -> Tensor
Parámetros
axes
Las dimensiones para reducir.
Devuelve la media aritmética a lo largo de los ejes especificados. Se eliminan las dimensiones reducidas.
Condición previa
Cada valor enaxes
debe estar en el rango de rango-rank...rank
.Declaración
@differentiable(wrt: self) public func mean(squeezingAxes axes: Int...) -> Tensor
Parámetros
axes
Las dimensiones para 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 enaxes
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 para 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 enaxes
debe estar en el rango-rank..<rank
.Declaración
@differentiable(wrt: self) public func mean(alongAxes axes: [Int]) -> Tensor
Parámetros
axes
Las dimensiones para 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 enaxes
debe estar en el rango-rank..<rank
.Declaración
@differentiable(wrt: self) public func mean(alongAxes axes: Int...) -> Tensor
Parámetros
axes
Las dimensiones para 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 enaxes
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 para 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 enaxes
debe estar en el rango-rank..<rank
.Declaración
@differentiable(wrt: self) public func variance(squeezingAxes axes: [Int]) -> Tensor
Parámetros
axes
Las dimensiones para 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 enaxes
debe estar en el rango-rank..<rank
.Declaración
@differentiable(wrt: self) public func variance(squeezingAxes axes: Int...) -> Tensor
Parámetros
axes
Las dimensiones para 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 enaxes
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 para 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 enaxes
debe estar en el rango-rank..<rank
.Declaración
@differentiable(wrt: self) public func variance(alongAxes axes: [Int]) -> Tensor
Parámetros
axes
Las dimensiones para 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 enaxes
debe estar en el rango-rank..<rank
.Declaración
@differentiable(wrt: self) public func variance(alongAxes axes: Int...) -> Tensor
Parámetros
axes
Las dimensiones para 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
entrue
, 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
entrue
, 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
entrue
, 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
entrue
, 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 ser0
.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
entrue
, 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
entrue
, 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
entrue
, 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
entrue
, 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 rango0
.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.
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 enaxes
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 para 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 enaxes
debe estar en el rango-rank..<rank
.Declaración
@differentiable(wrt: self) public func standardDeviation(squeezingAxes axes: [Int]) -> Tensor
Parámetros
axes
Las dimensiones para 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 enaxes
debe estar en el rango-rank..<rank
.Declaración
@differentiable(wrt: self) public func standardDeviation(squeezingAxes axes: Int...) -> Tensor
Parámetros
axes
Las dimensiones para 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 enaxes
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 enaxes
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 para 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 enaxes
debe estar en el rango-rank..<rank
.Declaración
@differentiable(wrt: self) public func standardDeviation(alongAxes axes: [Int]) -> Tensor
Parámetros
axes
Las dimensiones para 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 enaxes
debe estar en el rango-rank..<rank
.Declaración
@differentiable(wrt: self) public func standardDeviation(alongAxes axes: Int...) -> Tensor
Parámetros
axes
Las dimensiones para 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 laexp
de grandes entradas y subfluos causados por calcular ellog
de entradas pequeñas.Condición previa
Cada valor enaxes
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 para 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 laexp
de grandes entradas y subfluos causados por calcular ellog
de entradas pequeñas.Condición previa
Cada valor enaxes
debe estar en el rango-rank..<rank
.Declaración
@differentiable(wrt: self) public func logSumExp(squeezingAxes axes: [Int]) -> Tensor
Parámetros
axes
Las dimensiones para 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 laexp
de grandes entradas y subfluos causados por calcular ellog
de entradas pequeñas.Condición previa
Cada valor enaxes
debe estar en el rango-rank..<rank
.Declaración
@differentiable(wrt: self) public func logSumExp(squeezingAxes axes: Int...) -> Tensor
Parámetros
axes
Las dimensiones para 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 laexp
de grandes entradas y subfluos causados por calcular ellog
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 valor1
.Esta función es más numéricamente estable que
log(exp(self).sum(alongAxes: axes))
directamente. Evita los desbordamientos causados por calcular laexp
de grandes entradas y subfluos causados por calcular ellog
de entradas pequeñas.Condición previa
Cada valor enaxes
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 para reducir.
Devuelve
log(exp(self).sum(alongAxes: axes))
. Las dimensiones reducidas se conservan con el valor1
.Esta función es más numéricamente estable que
log(exp(self).sum(alongAxes: axes))
directamente. Evita los desbordamientos causados por calcular laexp
de grandes entradas y subfluos causados por calcular ellog
de entradas pequeñas.Condición previa
Cada valor enaxes
debe estar en el rango-rank..<rank
.Declaración
@differentiable(wrt: self) public func logSumExp(alongAxes axes: [Int]) -> Tensor
Parámetros
axes
Las dimensiones para reducir.
Devuelve
log(exp(self).sum(alongAxes: axes))
. Las dimensiones reducidas se conservan con el valor1
.Esta función es más numéricamente estable que
log(exp(self).sum(alongAxes: axes))
directamente. Evita los desbordamientos causados por calcular laexp
de grandes entradas y subfluos causados por calcular ellog
de entradas pequeñas.Condición previa
Cada valor enaxes
debe estar en el rango-rank..<rank
.Declaración
@differentiable(wrt: self) public func logSumExp(alongAxes axes: Int...) -> Tensor
Parámetros
axes
Las dimensiones para 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 rango1
.Condición previa
Cada valor enaxes
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 para 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 enaxes
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 para 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 enaxes
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 para 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 rango1
.Condición previa
Cada valor enaxes
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 para 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 enaxes
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 para 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 enaxes
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 para reducir.
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
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
dondemu
yvar
son respectivamente la media y la varianza deself
a lo largo delaxis
.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
Agrega 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
Apilar dos valores.
Declaración
@differentiable public static func stack(_ lhs: Tensor, _ rhs: Tensor) -> Tensor
Declaración
@derivative init(shape: scalars)
Declaración
public static func == (lhs: Tensor, rhs: Tensor) -> Bool
Declaración
public static func != (lhs: Tensor, rhs: Tensor) -> Bool
Declaración
public func encode(to encoder: Encoder) throws
Declaración
public init(from decoder: Decoder) throws
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
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
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> )