Как преобразовать список тензорных потоков в массив numpy

#python #numpy #tensorflow

#python #numpy #тензорный поток

Вопрос:

У меня есть данные, которые выглядят так, когда я их печатаю:

 data = [<tf.Tensor: shape=(), dtype=float32, numpy=-0.0034351824>, <tf.Tensor: shape=(), dtype=float32, numpy=0.0003163157>, <tf.Tensor: shape=(), dtype=float32, numpy=0.00060091465>, <tf.Tensor: shape=(), dtype=float32, numpy=0.0012879161>, <tf.Tensor: shape=(), dtype=float32, numpy=0.0002799925>]
 

Итак, это список, элементы которого имеют тип <class 'tensorflow.python.framework.ops.EagerTensor'> .

Я хотел бы преобразовать его в стандартный массив numpy. Итак, в этом случае это будет выглядеть так:

  array([-0.0034351824, 0.0003163157, 0.00060091465, 0.0012879161, 0.0002799925])
 

Как вы можете это сделать?

Ответ №1:

Вы можете использовать

 import numpy as np

x = np.array(data)
 

Ответ №2:

Вы можете использовать np.ravel , так как вам нужен одномерный список:

 np.ravel(data)
 
 array([0.22184575, 0.3621379 , 0.5509906 , 0.20388651, 0.94017696], dtype=float32)
 

Полный пример:

 import tensorflow as tf
import numpy as np

data = [tf.random.uniform((1,)) for i in range(5)]

np.ravel(data)
 

Комментарии:

1. Большое вам спасибо.