【问题标题】:Loading/ feed_dicting large dataset into Tensorflow session将大型数据集加载/ feed_dicting 到 Tensorflow 会话中
【发布时间】:2017-02-21 21:20:58
【问题描述】:

我正在尝试以 tr-60%、test-20%、validate-20% 的比率为 convNet 消耗 50k 图像数据集。 到目前为止,我已经创建了一个占位符并在@sess.run() 中对其进行feed_dicting,如下:-

tf_train_dataset = tf.placeholder(
    tf.float32, shape=(batch_size, image_size, image_size, num_channels))
......
...
feed_dict = {tf_train_dataset : batch_data, tf_train_labels : batch_labels}
    _, l, predictions = session.run(
      [optimizer, loss, train_prediction], feed_dict=feed_dict)

但根据官方 TF 性能指南,这是一种糟糕的实现方式,如下所示:- link to TF guide

除非有特殊情况或例如代码,否则不要喂 从 Python 变量到会话中的数据,例如字典。

# This will result in poor performance.
sess.run(train_step, feed_dict={x: batch_xs, y_: batch_ys})

您能帮忙实现在 TF 中读取数据的队列吗?

我找到的一种方法是:-

创建一个以流方式加载数据的操作

但我不确定 1) 如果这是最好的方法, 2) 我无法执行上述建议,您能帮忙创建此操作伪代码吗? 非常感谢。

【问题讨论】:

    标签: python-3.x tensorflow computer-vision large-data


    【解决方案1】:

    使用 feed_dict 提供数据通常不是一个好主意,但您不必总是编写操作来处理数据。您可以将图像数据转换为 tensorflow 可以识别的格式:https://github.com/tensorflow/tensorflow/blob/master/tensorflow/examples/how_tos/reading_data/convert_to_records.py。这个过程可以并行进行,并且可以输出文件列表,因为 tensorflow 也可以使用文件列表。

    然后按照本页的教程在 python 中创建队列和馈送数据:https://www.tensorflow.org/programmers_guide/reading_data

    【讨论】:

      猜你喜欢
      • 2017-11-16
      • 2021-03-29
      • 1970-01-01
      • 2019-10-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-30
      相关资源
      最近更新 更多