Converter Tensor em NumPy Array em Python

Muhammad Maisam Abbas 11 dezembro 2023
  1. Converter um tensor em um array NumPy com a função Tensor.numpy() em Python
  2. Converter um tensor em um array NumPy com a função Tensor.eval() em Python
  3. Converter um tensor em um array NumPy com a função TensorFlow.Session() em Python
Converter Tensor em NumPy Array em Python

Este tutorial irá apresentar os métodos para converter um Tensor em um array NumPy em Python.

Converter um tensor em um array NumPy com a função Tensor.numpy() em Python

O Eager Execution da biblioteca TensorFlow pode ser usado para converter um tensor em um array NumPy em Python. Com Eager Execution, o comportamento das operações da biblioteca do TensorFlow muda e as operações são executadas imediatamente. Também podemos realizar operações NumPy em objetos Tensor com Eager Execution. A função Tensor.numpy() converte o Tensor em um array NumPy em Python. No TensorFlow 2.0, a Eager Execution é ativada por padrão. Portanto, essa abordagem funciona melhor para o TensorFlow versão 2.0. Veja o seguinte exemplo de código.

import tensorflow as tf

tensor = tf.constant([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
print("Tensor = ", tensor)
array = tensor.numpy()
print("Array = ", array)

Resultado:

Tensor =  tf.Tensor(
[[1 2 3]
 [4 5 6]
 [7 8 9]], shape=(3, 3), dtype=int32)
Array =  [[1 2 3]
 [4 5 6]
 [7 8 9]]

No código acima, primeiro criamos e inicializamos o objeto Tensor tensor com a função tf.constant() em Python. Imprimimos o tensor e o convertemos em um array NumPy array com a função tensor.numpy() em Python. No final, imprimimos o array.

Converter um tensor em um array NumPy com a função Tensor.eval() em Python

Também podemos usar a função Tensor.eval() para converter um Tensor em um array NumPy em Python. Este método não é compatível com o TensorFlow versão 2.0. Portanto, temos que manter a versão 1.0 anterior do TensorFlow ou desativar todo o comportamento da versão 2.0 da biblioteca do TensorFlow. Veja o seguinte exemplo de código.

import tensorflow.compat.v1 as tf

tf.disable_v2_behavior()
tensor = tf.constant([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
print("Tensor = ", tensor)
array = tensor.eval(session=tf.Session())
print("Array = ", array)

Resultado:

Tensor =  Tensor("Const_1:0", shape=(3, 3), dtype=int32)
Array =  [[1 2 3]
 [4 5 6]
 [7 8 9]]

No código acima, convertemos o objeto Tensor tensor para o array NumPy array com a função tensor.eval() em Python. Primeiro importamos a versão 1.0 da biblioteca TensorFlow e desativamos todo o comportamento da versão 2.0. Em seguida, criamos e inicializamos o tensor com a função tf.constant() e imprimimos os valores em tensor. Em seguida, executamos a função tensor.eval() e salvamos o valor retornado dentro do array, e imprimimos os valores em array.

Converter um tensor em um array NumPy com a função TensorFlow.Session() em Python

O TensorFlow.Session() é outro método que pode ser usado para converter um Tensor em um array NumPy em Python. Este método é muito semelhante à abordagem anterior com a função Tensor.eval(). Essa abordagem também não é compatível com a versão 2.0 da biblioteca TensorFlow. Temos que instalar a versão 1.0 da biblioteca TensorFlow ou desativar todo o comportamento da versão 2.0 da biblioteca TensorFlow. Podemos passar nosso objeto Tensor para a função TensorFlow.Session().run() para converter esse objeto Tensor em um array NumPy em Python. Veja o seguinte exemplo de código.

import tensorflow.compat.v1 as tf

tf.disable_v2_behavior()
tensor = tf.constant([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
print("Tensor = ", tensor)
array = tf.Session().run(tensor)
print("Array = ", array)

Resultado:

Tensor =  Tensor("Const_6:0", shape=(3, 3), dtype=int32)
Array =  [[1 2 3]
 [4 5 6]
 [7 8 9]]

No código acima, convertemos o objeto Tensor tensor para o array NumPy array com a função tf.Session.run(tensor) em Python. Primeiro importamos a biblioteca TensorFlow compatível com a versão 1.0 e desativamos todo o comportamento da versão 2.0. Em seguida, criamos o objeto Tensor tensor e imprimimos os valores de tensor. Em seguida, convertemos o tensor tensor para o array NumPy array com a função tf.Session.run(tensor) e imprimimos os valores em array.

Muhammad Maisam Abbas avatar Muhammad Maisam Abbas avatar

Maisam is a highly skilled and motivated Data Scientist. He has over 4 years of experience with Python programming language. He loves solving complex problems and sharing his results on the internet.

LinkedIn