多GPU的Tensorflow预取

多GPU的Tensorflow预取,tensorflow,tensorflow-datasets,Tensorflow,Tensorflow Datasets,当有一个Tensorflow数据集和多个GPU时,将数据预加载到多个GPU是有益的 我能找到的唯一例子就是这个 我想知道的是: -是否真的需要多次调用sess.run(每个GPU一个) -这能与可配置数量的GPU一起工作吗?(splits=multi\u device\u iterator.get\u next()) -这个多设备迭代器似乎已经实现,但在文档中找不到。它还在开发中吗 而且,当我尝试实现这一点时,我会遇到很多错误 2018-11-02 09:22:15.740637:W tenso

当有一个Tensorflow数据集和多个GPU时,将数据预加载到多个GPU是有益的

我能找到的唯一例子就是这个

我想知道的是: -是否真的需要多次调用sess.run(每个GPU一个) -这能与可配置数量的GPU一起工作吗?(splits=multi\u device\u iterator.get\u next()) -这个多设备迭代器似乎已经实现,但在文档中找不到。它还在开发中吗

而且,当我尝试实现这一点时,我会遇到很多错误

2018-11-02 09:22:15.740637:W tensorflow/core/framework/op_kernel.cc:1261]未实现: 不支持的对象类型列表2018-11-02 09:22:15.741142:W tensorflow/core/framework/op_kernel.cc:1261]未实现: 不支持的对象类型列表2018-11-02 09:22:15.741670:W tensorflow/core/framework/op_kernel.cc:1261]未实现: 不支持的对象类型列表2018-11-02 09:22:15.742512:W tensorflow/core/framework/op_kernel.cc:1261]未实现: 不支持的对象类型列表2018-11-02 09:22:15.748161:W tensorflow/core/framework/op_kernel.cc:1261]未实现: 不支持的对象类型列表2018-11-02 09:22:15.749587:W tensorflow/core/framework/op_kernel.cc:1261]未实现: 不支持的对象类型列表2018-11-02 09:22:15.752334:W tensorflow/core/framework/op_kernel.cc:1261]未实现: 不支持的对象类型列表2018-11-02 09:22:15.752756:W tensorflow/core/framework/op_kernel.cc:1261]未实现: 不支持的对象类型列表2018-11-02 09:22:15.753581:W tensorflow/core/framework/op_kernel.cc:1261]未实现: 不支持的对象类型列表2018-11-02 09:22:15.753974:W tensorflow/core/framework/op_kernel.cc:1261]未实现: 不支持的对象类型列表2018-11-02 09:22:15.754434:W tensorflow/core/framework/op_kernel.cc:1261]未实现: 无支撑


这似乎没有什么帮助

我查看了上面提到的github源代码的链接,它没有任何与MultiDeviceIterator相关的内容。我检查了github repo并找到了这个迭代器的。据我所知,它似乎没有任何将数据提取到多个GPU的测试。不管怎样,作为一个解决办法,你可以检查一下你是否能提供帮助?
host_dataset_on_cpu = .....
multi_device_iterator = prefetching_ops.MultiDeviceIterator(host_dataset_on_cpu, devices=['/gpu:0', '/gpu:1'])
elem_on_gpu_0, elem_on_gpu_1 = multi_device_iterator.get_next()

with tf.Session() as sess:
    sess.run(multi_device_iterator.initializer)
    elem_0 = sess.run(elem_on_gpu_0)
    elem_1 = sess.run(elem_on_gpu_1)