使用 CPU 时当前 Keras 设置 (tensorflow-1.7.0 Keras-2.1.5) 的奇怪行为

数据挖掘 喀拉斯 张量流
2022-01-26 09:12:55

在虚拟机上重新安装 Keras 和 Tensorflow 后,我注意到模型无法正确训练(至少我检查过的模型)。例如,将 Keras 博客中的这段代码作为测试用例,损失并没有降低 ~0.8 的最终验证准确度,而是迅速增加到 ~7.5,准确度保持在 ~0.5。

需要注意的是,当我使用旧版本的 Keras 和 Tensorflow(在同一台计算机上)尝试它时,我没有观察到这种异常行为。

我在其他三个观察到相同行为的设置中重复了这个实验——另外两台使用 VM 的计算机和第三台计算机,这次是没有合适 GPU 的笔记本电脑。另一方面,在两台带有 GPU 的计算机上进行了尝试,训练按预期进行,损失减少,准确度提高到 Keras 博客中宣传的水平,并在使用 CPU 时观察到之前版本的 Keras 和 Tensorflow。

根据证据,我可以推测 Keras 或 Tensorflow 与 CPU 的交互以扰乱训练过程的方式发生了变化。

这里有没有人遇到过类似的问题?可以做些什么来解决这个问题?

1个回答

我最近在将工作模型移植到 tensorflow 1.7 时遇到了类似的问题。我发现初始化是罪魁祸首。添加 model.add(Dense(2048, activation='relu', kernel_initializer=initializers.glorot_normal()))而不是model.add(Dense(2048, activation='relu'))解决问题。