多GPU /塔设置Tensorflow 1.2 Estimator

时间:2017-07-05 09:54:38

标签: python tensorflow multi-gpu

我想将_model_fn Estimator转换为多GPU解决方案。

有没有办法在Esitmator API中执行此操作,或者是否必须显式编码设备放置和同步。

我知道我可以使用tf.device('gpu:X')将我的模型放在GPU X上。我也知道我可以循环使用可用的GPU名称来跨多个GPU复制我的模型。我也知道我可以为多个GPU使用单个输入队列。

我不知道的是哪些部分(优化器,损耗计算),我实际上可以移动到GPU以及我必须同步计算的位置。

Cifar10示例我认为我必须只同步渐变。

特别是在使用

train_op = tf.contrib.layers.optimize_loss(
        loss=loss,
        global_step=tf.contrib.framework.get_global_step(),
        learning_rate=learning_rate,
        learning_rate_decay_fn=_learning_rate_decay_fn,
        optimizer=optimizer)

我无法再手动拨打optimizer.compute_gradients()optimizer.apply_gradients(),因为这是由.optimize_loss(..)

内部处理的

我想知道如何在 cifar10 示例Cifar10-MultiGPU中对渐变进行平均,或者这对Estimator来说是否正确。

0 个答案:

没有答案