Converter Tensor to Numpy Array

Converter Tensor to Numpy Array
Este artigo explora os vários métodos e técnicas de converter um tensor de tensorflow em uma matriz numpy.

Vamos começar.

O que é um tensor?

Um tensor ou tensor de tensorflow para curta refere -se a uma matriz multidimensional com um tipo uniforme. Por exemplo, considere um tensor como uma coleção de vetores e matrizes em uma matriz multidimensional.

Como as cordas Python, um tensor é imutável e não permite que você altere seu conteúdo após a declaração.

Podemos criar um tensor como mostrado no seguinte snippet:

importar tensorflow como tf
importar numpy como np
tensor = tf.constante ([[10,20], [30,40], [50,60]]))
Imprimir (tensor)

No código fornecido, começamos importando os módulos Tensorflow e Numpy como TF e N, respectivamente.

Em seguida, criamos um novo tensor usando a função constante e a passamos para uma matriz. Imprimir o valor resultante retorna uma saída como mostrado no seguinte:

tf.Tensor (
[[10 20]
[30 40]
[50 60]], Shape = (3, 2), dtype = int32)

O código retorna um novo tensor de forma A (3,2) e tipo de dados INT32.

Método 1: Python converte Tensor to Numpy Array

O primeiro e mais comum o método que podemos usar para converter um tensor em uma matriz numpy é o tensor.função numpy ().

A função retorna um tensor fornecido como um ndarray numpy.

Um código de exemplo é como mostrado no seguinte:

importar tensorflow como tf
importar numpy como np
tensor = tf.constante ([[10,20], [30,40], [50,60]]))
tensor_array = tensor.Numpy ()
Imprimir (Tipo (Tensor))
Imprimir (Tipo (Tensor_array))

No exemplo dado, usamos a função Numpy () que permite converter um tipo de tensor de entrada em um Numpy ndarray.

O código anterior deve retornar os tipos resultantes da seguinte forma:


Podemos ver na saída anterior que o valor é convertido de um Eagertetensor em um ndary Numpy.

OBSERVAÇÃO: O método representado anteriormente funciona no Tensorflow versão 2 e acima.

Às vezes, pode ser necessário ativar a execução ansiosa em sua instalação de tensorflow.

Método 2: Versões mais antigas do tensorflow ou execução ansiosa

Suponha que você tenha Tensorflow versão 1.0 e gostaria de converter um tensor em uma matriz Numpy. Para isso, você pode usar o tensorflow.Método ().

O tensor.Session () objeto nos fornece a função run () que pode ajudar em nosso caso. Passar uma função tensor retorna uma matriz Numpy, conforme ilustrado no código a seguir:

importar tensorflow.compat.v1 como tf
tf.compat.v1.desabille_v2_behavior ()
tensor = tf.constante ([[1,2], [3,4], [5,6]]))
tensor_array = tf.Sessão().Run (tensor)
Imprimir (Tipo (Tensor_array))

Começamos importando a versão V1 do TensorFlow no código anterior. Isso nos dá acesso à função session ().

Em seguida, desativamos o comportamento V2, conforme ilustrado pelo código na linha 2.

O bloco V2 desativa os recursos do tensorflow v2 que podem resultar em um erro, como mostrado no seguinte:

AttributeError: Module 'Tensorflow' não tem atributo 'sessão'

Em seguida, criamos um tensor com a função constante.

Por fim, executamos o código para converter o tensor.

O tipo resultante é como mostrado no seguinte:

Lembre -se de que nem todos os tensores passados ​​para a função de execução são devolvidos como matriz numpy.
Por exemplo:

importar tensorflow.compat.v1 como tf
tf.compat.v1.desabille_v2_behavior ()
tensor = tf.escasso.SparseseSor (índices = [[0, 0], [1, 2]], valores = [1, 2], dense_shape = [3, 4])
tensor_array = tf.Sessão().Run (tensor)
Imprimir (Tipo (Tensor_array))

Usamos um tipo de sparsesensor neste exemplo e o passamos para a função de execução. O código anterior retorna um resultado como mostrado no seguinte:

Nesse caso, obtemos um SparseseSorValue em vez de uma matriz Numpy.

Método 3: Usando a função de avaliação

Se você estiver usando a versão 1 do TensorFlow, poderá usar a função Eval () para realizar a mesma coisa.

A funcionalidade é intimamente semelhante à função de execução ilustrada no exemplo anterior. Vejamos o código de exemplo seguinte:

importar tensorflow.compat.v1 como tf
tf.compat.v1.desabille_v2_behavior ()
tensor = tf.constante ([[1,2,3], [4,5,6]]))
Imprimir (Tipo (Tensor))
tensor_array = tensor.Eval (Sessão = TF.Sessão())
Imprimir (Tipo (Tensor_array))
Da mesma forma, o código anterior retorna uma matriz Numpy.

Conclusão

Este artigo explora os três principais métodos de conversão de um tensor em uma matriz Numpy. Esperamos que você tenha gostado do tutorial.

Obrigado pela leitura!!