如何将numpy数组转换为标准的TensorFlow格式?

时间:2016-04-28 21:52:55

标签: python numpy machine-learning tensorflow

我有两个numpy数组

  • 包含验证码图片和
  • 的图片
  • 包含相应标签的另一个标签(采用单热矢量格式)

我想将这些加载到TensorFlow中,以便我可以使用神经网络对它们进行分类。怎么办呢?

numpy数组需要具有什么形状?

其他信息 - 我的图像分别为60(高)×160(宽)像素,每个像素都有5个字母数字字符

Here is a sample image. 每个标签是5乘62阵列。

3 个答案:

答案 0 :(得分:26)

您可以使用tf.convert_to_tensor()

import tensorflow as tf
import numpy as np

data = [[1,2,3],[4,5,6]]
data_np = np.asarray(data, np.float32)

data_tf = tf.convert_to_tensor(data_np, np.float32)

sess = tf.InteractiveSession()  
print(data_tf.eval())

sess.close()

答案 1 :(得分:7)

为此,您可以使用tf.pack(TensorFlow 1.0.0中的tf.stack)方法。以下是将numpy.ndarray类型的随机图片打包到Tensor

的方法
import numpy as np
import tensorflow as tf
random_image = np.random.randint(0,256, (300,400,3))
random_image_tensor = tf.pack(random_image)
tf.InteractiveSession()
evaluated_tensor = random_image_tensor.eval()

更新:要将Python对象转换为Tensor,您可以使用tf.convert_to_tensor函数。

答案 2 :(得分:5)

您可以使用占位符和feed_dict。

假设我们有像这样的numpy数组:

trX = np.linspace(-1, 1, 101) 
trY = 2 * trX + np.random.randn(*trX.shape) * 0.33 

您可以声明两个占位符:

X = tf.placeholder("float") 
Y = tf.placeholder("float")

然后,在模型,成本等中使用这些占位符(X和Y):     model = tf.mul(X,w)... Y ...     ...

最后,当你运行模型/成本时,使用feed_dict:

来提供numpy数组
with tf.Session() as sess:
.... 
    sess.run(model, feed_dict={X: trY, Y: trY})