所以我在windows 10上,现在使用多个GPU来运行一些机器学习模型的训练,这个模型是关于GAN算法的,你可以通过here检查完整的代码:
在这里,我需要减少不同GPU设备的总和,如下所示:
if len(devices) > 1:
with tf.name_scope('SumAcrossGPUs'), tf.device(None):
for var_idx, grad_shape in enumerate(self._grad_shapes):
g = [dev_grads[dev][var_idx][0] for dev in devices]
if np.prod(grad_shape): # nccl does not support zero-sized tensors
g = tf.contrib.nccl.all_sum(g)
for dev, gg in zip(devices, g):
dev_grads[dev][var_idx] = (gg, dev_grads[dev][var_idx][1])
现在在这一部分我得到一个关于NCCL的错误,我注意到在Windows上不支持它需要Linux,因此我被困在这里...这里的“解决方案”是什么??...我如何在Windows上使用NCCL或替代上面的代码...有什么简单的方法可以做到这一点?...提前感谢。
注意:我已经检查了一些堆栈溢出问题。但是,没有答案存在,可以解决我的问题。
1条答案
按热度按时间enxuqcxy1#
尝试使用gloo:https://pytorch.org/docs/stable/distributed.html
并在代码的开头添加以下内容:
希望它有帮助(我这样做是为了在我的Windows电脑上制作工作美洲驼)