【问题标题】:Distributed (multi-device) implementation of sequence-to-sequence models in TensorFlow?TensorFlow中序列到序列模型的分布式(多设备)实现?
【发布时间】:2016-03-03 14:49:13
【问题描述】:

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

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

【问题讨论】:

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


    【解决方案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
    

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

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-10-07
        • 1970-01-01
        • 2014-08-05
        • 1970-01-01
        • 2019-07-01
        • 1970-01-01
        • 2022-01-12
        相关资源
        最近更新 更多