Converti il ​​tensore in un array numpy

Converti il ​​tensore in un array numpy
Questo articolo esplora i vari metodi e tecniche di conversione di un tensore di tensorflusso in un array numpy.

Iniziamo.

Cos'è un tensore?

Un tensore o un tensore di tensorflusso per corto si riferisce a un array multidimensionale con un tipo uniforme. Ad esempio, considera un tensore come una raccolta di vettori e matrici in un array multidimensionale.

Come le corde di Python, un tensore è immutabile e non ti consente di modificare il suo contenuto dopo la dichiarazione.

Possiamo creare un tensore come mostrato nel seguente frammento:

Importa Tensorflow come TF
Importa Numpy come NP
tensore = tf.costante ([[10,20], [30,40], [50,60]])
Stampa (tensore)

Nel codice dato, iniziamo importando i moduli Tensorflow e Numpy come TF e N, rispettivamente.

Creiamo quindi un nuovo tensore usando la funzione costante e la passiamo in un array. Stampa il valore risultante restituisce un output come mostrato nel seguente:

tf.Tensore (
[[10 20]
[30 40]
[50 60]], forma = (3, 2), dType = int32)

Il codice restituisce un nuovo tensore di forma A (3,2) e tipo di dati INT32.

Metodo 1: Python Convert Tensor in Numpy Array

Il primo e più comune metodo che possiamo usare per convertire un tensore in un array numpy è il tensore.funzione numpy ().

La funzione restituisce un tensore fornito come numpy ndarray.

Un codice di esempio è come mostrato nel seguente:

Importa Tensorflow come TF
Importa Numpy come NP
tensore = tf.costante ([[10,20], [30,40], [50,60]])
tensor_array = tensore.numpy ()
Stampa (tipo (tensore))
Stampa (tipo (tensor_array))

Nell'esempio indicato, utilizziamo la funzione Numpy () che consente di convertire un tipo di tensore di input in un Numpy Ndarray.

Il codice precedente dovrebbe restituire i tipi risultanti come segue:


Dall'output possiamo vedere che il valore viene convertito da un Eagertensor in un Numpy Ndarray.

NOTA: Il metodo precedentemente raffigurato funziona su Tensorflow versione 2 e sopra.

A volte, potrebbe essere necessario abilitare l'esecuzione ansiosa sull'installazione di Tensorflow.

Metodo 2: versioni di tensorflow più vecchie o esecuzione desiderosa disabilitate

Supponiamo di avere Tensorflow versione 1.0 e vorrei convertire un tensore in un array numpy. Per questo, puoi usare il Tensorflow.Metodo Session ().

Il tensore.L'oggetto session () ci fornisce la funzione run () che può aiutare nel nostro caso. Passare una funzione tensore restituisce un array numpy come illustrato nel seguente codice:

Importa flusso di tensor.compatito.v1 come tf
tf.compatito.v1.disable_v2_behavior ()
tensore = tf.costante ([[1,2], [3,4], [5,6]])
tensor_array = tf.Sessione().Run (tensore)
Stampa (tipo (tensor_array))

Abbiamo iniziato importando la versione V1 di Tensorflow nel codice precedente. Questo ci dà accesso alla funzione Session ().

Quindi disabilitiamo il comportamento V2 come illustrato dal codice nella riga 2.

Il blocco V2 disabilita le funzionalità V2 Tensorflow che possono comportare un errore come mostrato da segue:

AttributeError: Modulo 'TensorFlow' non ha 'Attributo' Sessione '

Successivamente, creiamo un tensore con la funzione costante.

Infine, eseguiamo il codice per convertire il tensore.

Il tipo risultante è come mostrato nel seguente:

Ricorda che non tutti i tensori passati alla funzione di corsa vengono restituiti come Array Numpy.
Per esempio:

Importa flusso di tensor.compatito.v1 come tf
tf.compatito.v1.disable_v2_behavior ()
tensore = tf.sparso.Sparetentens (indici = [[0, 0], [1, 2]], valori = [1, 2], dense_shape = [3, 4])
tensor_array = tf.Sessione().Run (tensore)
Stampa (tipo (tensor_array))

Usiamo un tipo di sparsetens in questo esempio e lo passiamo nella funzione di corsa. Il codice precedente restituisce un risultato come mostrato nel seguente:

In questo caso, otteniamo uno sparsetensorvalue anziché un array numpy.

Metodo 3: utilizzando la funzione Eval

Se si utilizza la versione 1 TensorFlow, è possibile utilizzare la funzione Eval () per realizzare la stessa cosa.

La funzionalità è strettamente simile alla funzione di esecuzione illustrata nell'esempio precedente. Vediamo il seguente codice di esempio:

Importa flusso di tensor.compatito.v1 come tf
tf.compatito.v1.disable_v2_behavior ()
tensore = tf.costante ([[1,2,3], [4,5,6]])
Stampa (tipo (tensore))
tensor_array = tensore.Eval (sessione = TF.Sessione())
Stampa (tipo (tensor_array))
Allo stesso modo, il codice precedente restituisce un array numpy.

Conclusione

Questo articolo esplora i tre principali metodi per convertire un tensore in un array numpy. Speriamo che ti sia piaciuto il tutorial.

Grazie per aver letto!!