Panoramica del tensore

Le API Swift per TensorFlow utilizzano il tipo Tensor come mezzo principale per eseguire calcoli accelerati. Un Tensor rappresenta un array multidimensionale di valori e le operazioni sui Tensor vengono automaticamente inviate agli acceleratori disponibili utilizzando uno dei due backend.

Un Tensor è generico riguardo al tipo di valori che contiene. Il tipo di questi valori deve essere conforme a TensorFlowScalar , con i tipi comuni Float , Int32 e Bool . Ad esempio, per inizializzare due Tensor contenenti Float con alcuni valori predeterminati, è possibile effettuare le seguenti operazioni:

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

Se avessi tralasciato il parametro di tipo <Float> , Swift dedurrebbe un tipo di Tensor<Double> . Double è il tipo predefinito per i valori letterali a virgola mobile in Swift. I valori Float tendono ad essere più comuni nei calcoli di machine learning, quindi li utilizzeremo qui.

Molti operatori comuni lavorano su Tensor s. Ad esempio, per sommarne due e ottenere il risultato, puoi procedere come segue:

let tensor3 = tensor1 + tensor2

L'elenco completo delle operazioni che puoi eseguire su un Tensor è disponibile nella documentazione dell'API .

_Operazioni _Raw

Le operazioni Tensor sono supportate da due diversi modi di lavorare con gli acceleratori, ma hanno un'interfaccia unificata di alto livello. Sotto il cofano, vengono definite le operazioni _Raw che vengono inviate alle versioni _RawXLA o _RawTFEager , a seconda del backend utilizzato per i Tensor in questione. Questi collegamenti _Raw a TensorFlow o X10 vengono generati automaticamente.

Normalmente non sarebbe necessario interagire direttamente con le operazioni _Raw . Le interfacce Swift idiomatiche sono state costruite sopra queste, ed è così che in genere eseguirai i calcoli Tensor .

Tuttavia, non tutte le operazioni TensorFlow sottostanti hanno interfacce Swift corrispondenti, quindi occasionalmente potresti dover accedere agli operatori _Raw nel tuo codice. Se necessario, è disponibile un tutorial interattivo per dimostrare come funziona.