我有一台4 gpus on cloud ml的机器。如何让我的tf贡献估算器在机器上使用GPU?我可以让估算师利用所有这些吗?
答案 0 :(得分:3)
估算器有两种类型:" pre-made"和" custom"。
目前使用多个GPU的预制估算器(例如DNNClassifier)都没有 - 所有计算都将在单个GPU上进行。
更新2018/07/18 * (基于墓碑'帖子):DistributionStrategy简化了创建" custom"在多个GPU上运行的估算器。
"自定义"估计量是你写的估计量。因此,他们可以做任何你想做的事情,包括利用多个GPU。在这种情况下,您只需确保使用相应的model_fn
语句编写tf.device
以将操作分配给正确的GPU(TensorFlow requires,当您有多个操作时,您可以手动分配操作图形处理器)。这通常涉及towers的使用,这意味着在每个GPU上重复模型结构。来自TensorFlow docs:
# Creates a graph.
c = []
for d in ['/gpu:2', '/gpu:3']:
with tf.device(d):
a = tf.constant([1.0, 2.0, 3.0, 4.0, 5.0, 6.0], shape=[2, 3])
b = tf.constant([1.0, 2.0, 3.0, 4.0, 5.0, 6.0], shape=[3, 2])
c.append(tf.matmul(a, b))
上述情况通常效果很好,但如果您想进一步优化效果,请参阅此advanced guide。
CIFAR-10 sample演示了在估算器中使用多个GPU进行图像分类。