【问题标题】:Multi-GPU model ( LSTM with Stateful ) on Keras is not workingKeras 上的多 GPU 模型(带状态的 LSTM)不起作用
【发布时间】:2017-11-08 22:03:07
【问题描述】:

我正在使用 keras(Tensorflow 后端)开发有状态的 LSTM 模型;我无法在多 GPU 平台上并行化它。 here is link to code。我收到以下错误。

tensorflow.python.framework.errors_impl.InvalidArgumentError:不兼容的形状:[256,75,39] 与 [512,75,39]

[[节点:training/cna/gradients/loss/concatenate_1_loss/mul_grad/BroadcastGradientArgs = BroadcastGradientArgs[T=DT_INT32, _class=["loc:@loss/concatenate_1_loss/mul"], _device="/job:localhost/副本:0/任务:0/gpu:0"](training/cna/gradients/loss/concatenate_1_loss/mul_grad/Shape,training/cna/gradients/loss/concatenate_1_loss/mul_grad/Shape_1)]]

[[节点:replica_1/sequential_1/dense_1/truediv/_473 = _Recvclient_terminated=false, recv_device="/job:localhost/replica:0/task:0/cpu:0", send_device="/job:localhost/副本:0/任务:0/gpu:1",send_device_incarnation=1,tensor_name="edge_3032_replica_1/sequential_1/dense_1/truediv",tensor_type=DT_FLOAT,_device="/job:localhost/replica:0/task:0/cpu :0"]]

我正在使用 2 个批量大小为 256 的 GPU。请帮助。

提前致谢。

【问题讨论】:

  • 你能修复你的代码链接吗?

标签: tensorflow keras lstm multi-gpu


【解决方案1】:

这个错误似乎只是因为您将一个大小为 512 的原始批次分成两个大小为 256 的较小批次。

有状态层需要固定的批量大小(请参阅模型开头的参数batch_shapebatch_input_shape)。

您可以尝试重新创建模型,将 batch_shape(或 batch_input_shape)更改为 256(如果当前为 512)。或者如果我对当前值有误,则相反。

如果您已经有一个训练有素的模型并且要保留权重,您可以创建另一个具有相同类型层和相同形状的模型,只更改输入形状。那你可以newModel.set_weights(oldModel.get_weights())


也就是说,我认为并行化有状态模型并不安全。在有状态模型中,“batch2”是“batch1”的续集。两个批次都代表“相同”的顺序,顺序绝对重要。如果 batch2 在 batch1 之前被处理,你将输入一个反向序列,你的模型会错误地学习它。

除非您发现 Keras 文档明确指出您可以安全地并行化有状态模型,否则您可能会从仔细检查(经过多次尝试后)中受益,如果并行化模型始终提供与单 GPU 模型相同的结果。

【讨论】:

    【解决方案2】:

    我目前正在研究stateful_multi_gpu,这是一个实验实用程序,用于构建用于多 GPU 训练的有状态 RNN 模型。

    Daniel Möller's answer相反,我认为您可以明确说明顺序:在哪个GPU上处理什么子批次以及如何将结果重新组合在一起。

    我仍然需要测试它是否可以在多个 GPU 上正确训练,以及它是否可以并行化任何任意有状态模型。因此,我对任何人使用此实用程序的体验感兴趣!

    【讨论】:

      猜你喜欢
      • 2019-09-15
      • 1970-01-01
      • 2020-07-11
      • 2018-11-27
      • 1970-01-01
      • 2018-03-30
      • 2017-08-31
      • 1970-01-01
      • 2019-04-15
      相关资源
      最近更新 更多