正在将/ feed_dicting 大型数据集加载到 Tensorflow 会话中

Loading/ feed_dicting large dataset into Tensorflow session

我正在尝试使用比例为 tr-60%、test-20%、validate-20% 的 convNet 使用 50k 图像数据集。 至此我已经创建了占位符和feed_dicting它@sess.run(),如下:-

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

Unless for a special circumstance or for example code, do not feed data into the session from Python variables, e.g. dictionary.

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

能否帮忙实现TF中读取数据的队列?

我发现的一种方法是:-

Create an op which is loading your data in stream fashion

但我不确定 1) 如果这是最好的方法, 2)我无法实现上面的建议,你能帮忙创建这个op伪代码吗? 非常感谢。

使用 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