LSTM是一种算法还是一个节点?如果在模型中使用它,分布式训练时反向传播会不会发生冲突?
回答:
LSTM既不是算法也不是节点。它是一种循环神经网络(参见这篇文章)。在TensorFlow中,你可能会感到困惑,因为有一个称为单元的概念(例如,BasicLSTMCell
),这基本上是创建形成一个或多个层的单元的工厂。最终,这一切都转化为计算图中的节点。你可以在这个笔记本中找到一个很好的使用示例。顺便说一下,训练的算法是相同的——反向传播。
现在,关于分布式训练,有两种类型的并行:数据并行和模型并行,两者都不会破坏反向传播。唯一的例外可能是异步更新的数据并行,这确实需要一些技巧才能工作,但在TensorFlow中没有对其的第一级支持。我认为你最好使用更简单的分布模型方法(参见这篇文章)。所以答案很可能是:不,反向传播会正常工作。