2

是一个关于在 TensorFlow 中训练序列到序列模型的非常好的教程。我只是想知道是否有一个分布式版本可以在单台机器上利用一组 GPU 以获得更好的性能?

TensorFlow 白皮书已经提到,可以训练大型多层循环神经网络(参见图 8和“模型并行训练”部分),如使用神经网络的序列到序列学习中使用的那样。有人知道当前的教程是否涵盖模型并行训练吗?如果不是,如何改进原始教程以利用一组 GPU?

4

2 回答 2

1

此示例涵盖多 GPU 训练https://www.tensorflow.org/versions/r0.11/tutorials/deep_cnn/index.html#training-a-model-using-multiple-gpu-cards

基本上要利用多个 GPU,您必须使用 tensorflow 的内置范围来明确告诉它要在哪个设备上运行。你可以让一堆 GPU 并行运行,然后使用一些设备来总结结果。这涉及到大量的 tensorflow 作用域,必须明确地完成。所以要使用 gpu 0,你可以有一个类似这样的调用:

        with tf.device("/gpu:0"):
            #do your calculations

然后在你的代码的其他地方你有一个同步步骤:

        with tf.device(aggregation_device):
            #make your updates

该链接很好地解释了这一点,但希望这可以帮助您入门

于 2016-10-17T23:41:37.157 回答
0

看看这个: https ://github.com/shixing/xing_rnn/tree/master/Seq2Seq

它实现了一个基于注意力的 seq2seq 模型,可以将每一层放在不同的 GPU 上。

于 2017-08-29T23:23:26.363 回答