首页 > 解决方案 > 使用英特尔 MKL 在不同 CPU 上可重现的机器学习结果

问题描述

我正在使用 和 进行condaMLpython==3.6.8项目mkl==2019.1。我已经在 Intel Pentium G4560 上设置了种子并多次运行代码,我得到了完全相同的结果。但是,在 Intel i5-8257U 上的相同环境下运行相同的代码,我得到的结果略有不同,从小数点后第 3 位/第 2 位开始。在 i5-8257U 上,如果我多次运行代码,我会得到相同的结果。G4560 运行 Ubuntu 18.04,而 i5-8257U 运行 macOS,我在基于 Debian 的 Docker 容器中运行代码。

在网上阅读了一下后,我发现了 MKL 和 set 的再现性标志MKL_CBWR=SSE4_2MKL_NUM_THREADS=1并且MKL_DYNAMIC=FALSE(因为 G4560 仅支持 SSE4.2)但 i5-8257U 上的结果仍然是旧的。

还有其他人遇到同样的事情吗?我正在尝试找到一种方法让我的代码在计算机设置中可重现。谢谢!

标签: pythonnumpymachine-learningintel-mklreproducible-research

解决方案


推荐阅读