在我进行了导致某些权重为 nan 的 train_on_batch 更新后,我无法将我的 keras 模型重置为上一个时期的权重。
我尝试在每个训练步骤后保存模型权重,然后在 nan 训练更新后将“良好”(非 nan)权重加载回 keras 模型。这似乎工作正常 - 当我在将旧权重文件加载到模型中后打印 model.get_weights() 的结果时,生成的权重不包含 nan(并且使用它们进行预测也会给出非 nan 输出)。
但是,现在当我再次尝试 train_on_batch 时,这次使用新批处理,我立即再次获得 nan 更新。我尝试过多个随机选择的批处理,并且每次都会发生 nan 更新。
当发生 nan train_on_batch 更新时,模型或优化器配置中是否有某些内容(可能是参数)发生变化,需要重置以便在更改权重后继续训练?
我还想避免在解决方案中使用 model.save() 和 load_model()。
(keras 2.2.4, tensorflow 1.12.0)
任何想法都值得赞赏!
由于您还没有粘贴代码和权重,我无法告诉您太多信息,但我怀疑这个问题可能是由于丢失或正则化造成的,如果您使用这两种技术中的任何一种,请正确设置参数或丢失百分比根据您的网络,小型网络中的高比例会导致与正则化相同的此类问题。并使用检查点来恢复和保存模型。
我是一名优秀的程序员,十分优秀!