如何将CSV数据导入TensorFlow

时间:2017-05-31 20:13:27

标签: python csv tensorflow

我最近开始使用Tensor Flow进入深度学习。我已经阅读了很多在线资源,并为初学者学习了Udacity课程。我获得了很多深度学习的基本原理。但我现在正在努力的一件事并不是任何这些资源的主题。我不知道如何将我自己的标记数据(CSV格式)放入我的Python程序中来训练我的网络。我已经遇到this posting并开始以帖子显示的方式实现输入管道,并且它到目前为止一直有效。当我尝试通过提供功能标签来训练我的模型时

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 返回的对象是Tensors对吗?应该/我可以将它们转换回有效的数据类型,如Numpy数组,还是有任何其他更有效的方式来读取我的数据。

1 个答案:

答案 0 :(得分: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

  2. 避免使用feed_fict

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

    x = features
    y = labels
    

    执行 sess.run(model_output / loss / accuracy)以获取预测或训练模型。

  3. 我希望这会有所帮助。