2017-05-31 106 views
0

我最近开始使用Tensor Flow进入Deep Learning。我读过很多在线资源,并为初学者参加了Udacity课程。我学到了很多深度学习的基本原理。但我现在挣扎的一件事并不是任何这些资源的主题。我不知道如何将我自己的标记数据(CSV格式)放入我的Python程序来训练我的网络。我遇到this posting,并开始实施输入管道的方式,帖子显示,它的工作到目前为止。当我试图用如何将CSV数据导入TensorFlow

sess.run(optimizer, feed_dict={ 
     x: features, 
     y: labels, 
    }) 

TF喂我功能标签训练我的模型抛出一个错误

TypeError: The value of a feed cannot be a tf.Tensor object. Acceptable feed values include Python scalars, strings, lists, numpy ndarrays, or TensorHandles. 

X和Y被定义为占位符和会话调用tf.global_variables_initializer()

x = tf.placeholder(tf.float32, shape=[10, batch_size]) 
y = tf.placeholder(tf.float32) 

但由tf.train.shuffle_batch返回的对象是张量正确吗?应该/我可以将它们转换回有效的数据类型,如Numpy数组,还是有其他更有效的方式来读取我的数据。

+0

我的答案是否解决了问题? – hars

+0

@hars是的,第一种方法现在可以工作。我试过你的第二个解决方案,但我不确定这应该如何工作。 – MoVo99

回答

0

你可以用两种方法做到这一点。

  1. 随着feed_dict

    features_numpy,labels_numpy = sess.run([features,labels]) 
    sess.run(optimizer, feed_dict={ x: features_numpy,y: labels_numpy}) 
    

    运行会议,对功能和标签获得numpy的值,并使用feed_dict其输送到模型。但是这样做效率不高,因为您将TF数据复制到Numpy并将其再次提供给TF。按照有效的方式。

  2. 避免feed_fict

    不要使用feed_dict和占位符。将要素和标签节点直接连接到模型。或者这样做

    x = features 
    y = labels 
    

    sess.run(model_output /亏损/精度)得到预测或训练模型。

我希望这有助于。