python - 使用英特尔 MKL 在不同 CPU 上可重现的机器学习结果
问题描述
我正在使用 和 进行conda
MLpython==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_2
,MKL_NUM_THREADS=1
并且MKL_DYNAMIC=FALSE
(因为 G4560 仅支持 SSE4.2)但 i5-8257U 上的结果仍然是旧的。
还有其他人遇到同样的事情吗?我正在尝试找到一种方法让我的代码在计算机设置中可重现。谢谢!
解决方案
推荐阅读
- php - 将值字符串插入 DB PDO
- strategy-pattern - 接受策略的访问者模式 - 有什么收获吗?
- excel - 复制包含公式的范围并粘贴到第一个空白列
- java - ch.qos.logback.core.util.IncompatibleClassException 启动 tomcat 9.0.2
- node.js - Mongoose 在 Firebase (Express Api) 托管上不工作
- postgresql - 从 postgres 中的另一个表列值更新列值
- vb.net - 变量在被赋值之前使用,现在数据不过滤
- java - 并行化 KafkaStream 处理的更好方法?
- linux - 如何为 Redhat 5.8/CentOS 5 编译 python3.6 程序?
- python - Openembedded:如何将 python-robotframework 添加到 Yocto