我试图弄清楚如何在分布式训练中设置输入管道的张量流。目前尚不清楚读者是否会从单个进程读取并将数据发送给所有工作人员,或者每个服务器是否会启动它自己的输入管道?我们如何确保每个工人都有不同的投入?
答案 0 :(得分:1)
我将举例说明我是如何做到的:
import tensorflow as tf
batch_size = 50
task_index = 2
num_workers = 10
input_pattern = "gs://backet/dir/part-00*"
获取存储桶中与input_pattern
files_names = tf.train.match_filenames_once(
input_pattern, name = "myFiles")
为工作人员task_index
选择名称。 tf.strided_slice
就像列表一样:a [::,task_index](为工作人员{{1}选择每个task_index
个文件)
task_index
我不确定在分布式TensorFlow实现的情况下,我的方法是实现输入管道的最佳方法,因为每个worker都读取存储桶中所有文件的名称
关于TensorFlow中输入管道的好讲座:http://web.stanford.edu/class/cs20si/lectures/notes_09.pdf