【发布时间】:2016-03-30 15:55:10
【问题描述】:
我计划运行一个非常大的循环网络(例如 2048x5),是否可以在 tensorflow 中在一个 GPU 上定义一层?我应该如何实现模型以达到最佳效率。我了解 GPU 间或 GPU-CPU-GPU 通信存在开销。
【问题讨论】:
-
我了解 with tf.device() 的用法。但是,在我在不同的 GPU 上定义层之后,我发现渐变仍然存储在第一个 GPU 上。你能举一个在不同 GPU 上分割梯度计算的具体例子吗?
-
您也可以在构建模型时尝试将
colocate_gradients_with_ops=True传递给optimizer.minimize()方法。 -
@mrry 它有效!现在我看到计算是均匀分布的。
-
你应用
clip_by_norm的情况怎么样——你如何确保每个 gpu 剪辑各自的梯度,这样你就不会浪费时间来回传输张量?
标签: python neural-network tensorflow