【问题标题】:How to get CSV data into TensorFlow如何将 CSV 数据导入 TensorFlow
【发布时间】:2017-05-31 20:13:27
【问题描述】:

我最近开始使用 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 返回的对象是张量,对吧?我应该/可以将它们转换回像 Numpy 数组这样的有效数据类型,还是有任何其他更有效的方式来读取我的数据。

【问题讨论】:

  • 我的回答解决了问题吗??
  • @hars 是的,第一种方法现在有效。我尝试了您的第二个解决方案,但我不确定这应该如何工作。

标签: python csv tensorflow


【解决方案1】:

你可以通过两种方式做到这一点。

  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) 以获取预测或训练模型。

我希望这会有所帮助。

【讨论】:

    猜你喜欢
    • 2020-11-20
    • 2020-11-02
    • 1970-01-01
    • 2017-03-01
    • 2012-03-22
    • 1970-01-01
    • 1970-01-01
    • 2020-02-11
    • 2018-08-26
    相关资源
    最近更新 更多