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

时间:2016-03-03 14:49:14

标签: gpgpu tensorflow multi-gpu lstm recurrent-neural-network

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

已经提到

TensorFlow white paper可以训练大型多层递归神经网络(参见图8 和“模型并行训练”部分)在Sequence to Sequence Learning with Neural Networks中使用。有人知道当前的教程是否涵盖并行培训模型? 如果不是,如何改进原始教程以利用一组GPU?

2 个答案:

答案 0 :(得分:1)

此示例涵盖了多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

链接很好地解释了这一点,但希望这可以帮助你开始

答案 1 :(得分:0)

检查一下: https://github.com/shixing/xing_rnn/tree/master/Seq2Seq

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