【发布时间】:2017-01-22 18:20:33
【问题描述】:
目前我正在实现一个大型自定义模型,并参考 tensorflow 附带的 CIFAR 10 的多 GPU 示例。然而,我最终基于它编写的代码并不干净,而且容易出错。例如我必须找到每个可训练的变量并添加“with tf.device('/cpu:0')”。
是否有更高效/更简洁的方式来适应多 GPU 执行?
非常感谢您的支持。
【问题讨论】:
标签: tensorflow gpu
目前我正在实现一个大型自定义模型,并参考 tensorflow 附带的 CIFAR 10 的多 GPU 示例。然而,我最终基于它编写的代码并不干净,而且容易出错。例如我必须找到每个可训练的变量并添加“with tf.device('/cpu:0')”。
是否有更高效/更简洁的方式来适应多 GPU 执行?
非常感谢您的支持。
【问题讨论】:
标签: tensorflow gpu
这是来自 Rafal 的 example
您在塔上进行循环,将 ith 塔的主体构造为 with tf.device(assign_to_gpu(i))。函数assign_to_gpu 以不同的方式处理变量并将它们分配给“ps-device”。
注意:我们发现,当 GPU 采用 p2p 连接时,保持变量 gpu:0 而不是 cpu:0 时训练速度更快
【讨论】: