正在将/ 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
我正在尝试使用比例为 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