微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Keras 模型训练精度在训练时急剧下降

如何解决Keras 模型训练精度在训练时急剧下降

我正在使用 Keras 训练基于深度 CNN 的神经网络,并且在训练到第 16 个时期时的准确度为 90%。它在第 17 个时期大幅下降到 40%,然后在下一个时期下降到 3%,并保持不变,直到训练结束。可能是什么原因造成的?

这是我的模型架构:

## input layer
input_layer = Input((S,S,L,1))

## convolutional layers
conv_layer1 = Conv3D(filters=8,kernel_size=(3,3,7),activation='relu',padding = 'same')(input_layer)
conv_layer2 = Conv3D(filters=16,5),padding = 'same')(conv_layer1)
conv_layer3 = Conv3D(filters=32,3),padding = 'same')(conv_layer2)
print(conv_layer3._keras_shape)
conv3d_shape = conv_layer3._keras_shape
conv_layer3 = Reshape((conv3d_shape[1],conv3d_shape[2],conv3d_shape[3]*conv3d_shape[4]))(conv_layer3)
conv_layer4 = Conv2D(filters=64,activation='relu')(conv_layer3)

flatten_layer = Flatten()(conv_layer4)

## fully connected layers
dense_layer1 = Dense(units=256,activation='relu')(flatten_layer)
dense_layer1 = Dropout(0.4)(dense_layer1)
dense_layer2 = Dense(units=128,activation='relu')(dense_layer1)
dense_layer2 = Dropout(0.4)(dense_layer2)
output_layer = Dense(units=output_units,activation='softmax')(dense_layer2)

我将添加培训的截图:

training-screenshot

对此,我有两个问题:

  1. 发生这种情况的可能原因是什么?
  2. 我怀疑信息可能不正确。我已经设置了一个检查点,所以只会保存最好的权重。训练模型大约需要 16 个小时。有没有办法在检查点仍然存在的情况下仍然可以获得最后一个时期的训练权重,即不是最好的权重?

解决方法

  1. 你在第 17 个纪元的损失是 nan
  2. 除了从保存的权重中加载之外,不可能恢复权重

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?