You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Keras神经网络重启内核后无法复现训练结果的问题排查

TensorFlow/Keras重启Jupyter内核后训练结果无法复现的解决方案

环境配置

  • Python 3.11
  • Keras 2.12.0
  • CPU版TensorFlow 2.12.1

问题现象

在Jupyter Notebook中训练神经网络时,每次重启内核后重新拟合模型,训练结果都会出现差异;但不重启内核时重复执行训练流程,结果完全一致。

已尝试的无效措施

按照Keras官方文档及社区相关方案做了以下操作,但重启内核后仍无法复现结果:

  • 给NumPy、TensorFlow、Python内置random模块均设置了固定随机种子
  • 手动指定模型权重的初始化方式,确保初始权重一致
  • 开启TensorFlow的操作确定性模式(tf.config.experimental.enable_op_determinism())
  • 确认数据加载逻辑、训练测试集划分完全无随机变动
  • 验证每次重启内核后,模型初始权重均保持相同

最终解决方案

问题根源在于PYTHONHASHSEED的设置方式——必须将其配置为系统级环境变量,而非仅在代码内部通过os.environ['PYTHONHASHSEED']设置。

具体设置方式

  • Windows系统:打开系统环境变量设置面板,新增PYTHONHASHSEED变量,将值设为任意固定整数(如42),保存后重启Jupyter Notebook
  • Linux/macOS系统:启动Jupyter前先在终端执行export PYTHONHASHSEED=42,再启动Notebook;若需永久生效,可将该命令添加至.bashrc或.zshrc等shell配置文件中

完成上述设置后,每次重启Jupyter内核并重新训练模型,即可得到完全一致的训练结果。

内容的提问来源于stack exchange,提问作者Marco Pellizzari

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.27 06:22:05