TensorFlow 中序列到序列模型的分布式(多设备)实现



这是一个非常好的教程,介绍如何在TensorFlow中训练序列到序列模型。我只是想知道是否有一个分布式版本一台机器上利用一组 GPU 来提高性能?

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

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

基本上,要利用多个GPU,您必须使用内置的tensorflow范围来明确告诉它要在哪个设备上运行。您可以让一堆 GPU 并行运行,然后使用一些设备来汇总结果。这涉及大量的张量流范围,必须明确完成。因此,要使用 gpu 0,您可以进行类似于以下内容的调用:

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

然后在代码中的其他位置,您有一个同步步骤:

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

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

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

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

相关内容

  • 没有找到相关文章

最新更新