【问题标题】:Why does the accuracy drop to zero in each epoch, while training convlstm layers in keras?为什么在 keras 中训练 convlstm 层时,每个 epoch 的准确率都会下降到零?
【发布时间】:2018-04-18 22:50:31
【问题描述】:

我正在尝试使用 Keras 2 中的 ConvLSTM 层来训练动作识别模型。该模型有 3 个 ConvLSTM 层和 2 个全连接层。

在每个时期,第一批(通常不止一个)的准确度为零,然后它会比前一个时期增加一些。例如,第一个 epoch 在 0.3 结束,下一个 epoch 在 0.4 结束,依此类推。

我的问题是为什么它在每个时期都归零?

附言

  • ConvLSTM 是无状态的。
  • 该模型是使用 SGD(lr=0.001, decay=1e-6, momentum=0.9, nesterov=True) 编译的,由于某种原因它没有使用 Adam 收敛。

【问题讨论】:

标签: tensorflow deep-learning keras conv-neural-network lstm


【解决方案1】:

所以 - 为了理解为什么会发生这种情况,您需要了解 keras 在批量计算期间如何计算准确性:

  1. 在每个批次之前 - 存储了一些肯定分类的示例。
  2. 在每批之后 - 存储了一些肯定分类的示例,并在除以训练中使用的所有示例后打印出来。

由于您的准确率非常低,因此很可能在前几批中没有一个示例被正确分类。尤其是当你有小批量时。这使得在训练开始时准确度为 0。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-12-20
    • 2020-09-20
    • 2021-05-04
    • 2016-09-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多