我目前在使用Capsule Network(Keras版本:CapsNet)时遇到了麻烦。
每当我连续(在循环中)运行2-5个以上的预测时,结果会有很大不同。我试图改变这样的东西。我也将优化程序从ADAM更改为SGD-但我无法使其保持100%稳定,因此无法再次复制给定的运行。
如何使CapsNet每次运行100%可重现?
最佳答案
答案是漫长而复杂的。有a blog post that goes into much more detail than I can here,但我将尝试捕捉高层次的观点。
在运行python程序之前,将PYTHONHASHSEED
环境变量设置为0
。
如果在GPU上运行计算,则由于进行四舍五入而可能导致不可重复的结果。您可以通过以与以前相同的方式将CUDA_VISIBLE_DEVICES
环境变量设置为空字符串来禁用它并在CPU上运行所有操作。
CUDA_VISIBLE_DEVICES="" PYTHONHASHSEED=0 python your_program.py
关于python - 胶囊网络且可重复,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58530832/