Descripción general del tensor

Las API de Swift para TensorFlow utilizan el tipo Tensor como medio principal para realizar cálculos acelerados. Un Tensor representa una matriz multidimensional de valores, y las operaciones en Tensor s se envían automáticamente a los aceleradores disponibles utilizando uno de los dos backends.

Un Tensor es genérico sobre el tipo de valores que contiene. El tipo de estos valores debe ajustarse a TensorFlowScalar , siendo los tipos comunes Float , Int32 y Bool . Por ejemplo, para inicializar dos Tensor que contienen Float con algunos valores predeterminados, puedes hacer lo siguiente:

let tensor1 = Tensor<Float>([0.0, 1.0, 2.0])
let tensor2 = Tensor<Float>([1.5, 2.5, 3.5])

Si hubiera omitido el parámetro de tipo <Float> , Swift inferiría un tipo de Tensor<Double> . Double es el tipo predeterminado para literales de punto flotante en Swift. Los valores Float tienden a ser más comunes en los cálculos de aprendizaje automático, por eso los usaremos aquí.

Muchos operadores comunes trabajan en Tensor s. Por ejemplo, para sumar dos de ellos y obtener el resultado, puedes hacer lo siguiente:

let tensor3 = tensor1 + tensor2

La lista completa de operaciones que puede realizar en un Tensor está disponible en la documentación de la API .

_Operaciones _Raw

Las operaciones Tensor están respaldadas por dos medios diferentes de trabajar con aceleradores, pero tienen una interfaz unificada de alto nivel. Debajo del capó, se definen operaciones _Raw que se envían a las versiones _RawXLA o _RawTFEager , dependiendo del backend utilizado para los Tensor en cuestión. Estos enlaces _Raw a TensorFlow o X10 se generan automáticamente.

Normalmente, no sería necesario interactuar directamente con las operaciones _Raw . Se han construido interfaces idiomáticas de Swift sobre estas, y así es como normalmente realizarás cálculos Tensor .

Sin embargo, no todas las operaciones subyacentes de TensorFlow tienen interfaces Swift coincidentes, por lo que ocasionalmente es posible que necesites acceder a operadores _Raw en tu código. Si necesita hacerlo, hay un tutorial interactivo disponible para demostrar cómo funciona.