注意,Keras有时在加载的模型上有问题,如此处所示 。这可能可以解释一些情况,其中您不是从相同的训练准确性开始的。

加载经过训练的Keras模型并继续训练

共 3 个回答
高赞
时间
活跃
0

0

实际上model.save
保存了根据您的情况重新开始训练所需的所有信息。重新加载模型可能会破坏的唯一事情是优化器状态。要进行检查-尝试save
并重新加载模型,并根据训练数据对其进行训练。
0

问题可能是您使用了不同的优化器-或优化器使用了不同的参数。我只是在使用自定义预训练模型时遇到了相同的问题,
reduce_lr = ReduceLROnPlateau(monitor='loss', factor=lr_reduction_factor,
patience=patience, min_lr=min_lr, verbose=1)
对于预训练模型,其中原始学习率从0.0003开始,在预训练过程中降低为min_learning率,即0.000003
我只是将该行复制到使用预训练模型的脚本中,并且准确性很差。直到我注意到预训练模型的最后学习率是最小学习率,即0.000003。如果我以该学习率开始,那么我得到的精确度与预训练模型的输出完全相同-这是有道理的,因为它的学习率是预训练模型中最后一次使用的学习率的100倍该模型将导致GD严重超调,从而大大降低精度。
新手导航
- 社区规范
- 提出问题
- 进行投票
- 个人资料
- 优化问题
- 回答问题
1
我想知道是否有可能保存经过部分训练的Keras模型并在再次加载模型后继续进行训练。
这样做的原因是,将来我将拥有更多的训练数据,并且我不想再次对整个模型进行训练。
我正在使用的功能是:
编辑1:添加了完全正常的示例
对于10个纪元后的第一个数据集,最后一个纪元的损失为0.0748,精度为0.9863。
保存,删除和重新加载模型后,第二个数据集上训练的模型的损失和准确性分别为0.1711和0.9504。
这是由新的训练数据还是由完全重新训练的模型引起的?