目前,我实现了一个大型自定义模型,并引用了与tensorflow一起提供的CIFAR 10的multi gpu示例。然而,我最终编写的代码基于不干净并且容易出错。对于例如我必须找到每个可训练的变量并添加"和tf.device(' / cpu:0')"。
是否有更有效/更清晰的方法来适应多GPU执行?
非常感谢任何支持。
答案 0 :(得分:2)
这是来自Rafal的example
你在塔身上做一个循环,身体构建i
塔为with tf.device(assign_to_gpu(i))
。函数assign_to_gpu
以不同方式处理变量并将它们分配到" ps-device"。
注意:我们发现当GPU连接到p2p时,如果保留变量gpu:0
而不是cpu:0