问题
模型训练完成并保存后,再新的代码中再读取时预测结果变的不一致。
可能的原因
- 请检查随机种子是否被确定
- 请检查模型的保存与读取是否正确
如果这些检查都没有问题,请尝试在原始代码(训练完毕后,测试之前)中重新读取模型文件检查预测结果是否与之前一致。如果一致,说明很可能问题出在随机数上。
随机数
请务必检查代码中是否人为多次使用了随机数相关的代码,当随机种子被固定后,只是固定了随机数出现的顺序,而非固定了随机数
例如当固定随机种子并多次产生随机数后,生成的随机数分别为1,3,4,8,10。无论重复多少次,只要再生成5个数字,那么就是固定的1,3,4,8,10的顺序。
然而,每次产生的随机数并不是一致的,也就是说,代码第一次产生的随机数1和之后产生的随机数不一定相同。因此在网络中如果涉及到随机数,并经过训练(多次迭代)后,再产生的随机数可能与测试时所产生的第一个随机数不同,进而导致模型预测结果不同。