我正在尝试为convNet消耗50k图像数据集,比例为tr-60%,test-20%,validate-20%。 到目前为止,我已经创建了一个占位符并将其@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)我无法实现上述建议,您能帮忙创建这个操作伪代码吗? 非常感谢。
答案 0 :(得分:2)
使用feed_dict提供数据通常是一个坏主意,但您不必总是编写操作来处理数据。您可以将图像数据转换为tensorflow可识别的格式:https://github.com/tensorflow/tensorflow/blob/master/tensorflow/examples/how_tos/reading_data/convert_to_records.py。此过程可以并行进行,您可以输出文件列表,因为tensorflow也可以使用文件列表。
然后按照此页面上的教程在python中创建队列和Feed数据:https://www.tensorflow.org/programmers_guide/reading_data