我想知道我们是否可以在Tensorflow中培训当前批次时加载和预先存储下一批数据。
我的模型需要从不同的源加载多个图像,并为每个训练操作做一些预处理,整个过程非常慢。我的计算机需要1.4秒才能加载/处理一批训练数据,需要1.6秒才能在GPU上训练。我想如果有一种方法可以让我在训练期间加载下一批数据,那么我可以大大加快训练过程。
顺便说一句,我已经多线程化了我的预处理功能。
在培训阶段,我的代码的简化版本粘贴在下面:
with tf.Session as sess:
......
......
while step < max_global_step:
......
......
#This line takes 1.4 seconds to execute
images_batch = load_batch_data(*batch_image_paths)
feed = {train_batch, images_batch}
#This line takes bout 1.6 seconds to run
loss, summary, step= sess.run([loss, summary, global_step], feed_dict=feed)
......
......
......
......
所以一般来说,程序将花费1.4秒运行images_batch = load_batch_data(*batch_image_paths)
和1.6秒loss, summary, step= sess.run([loss, summary, global_step], feed_dict=feed)
或者,有没有办法在像我这样的情况下提高总培训费用?