nnet()在Windows与Linux系统下结果不一致的技术问询
跨操作系统下nnet() ANN模型结果不一致问题
- 场景:使用R脚本通过
nnet()包构建ANN模型,本地Windows环境与Docker部署的Linux环境运行同一脚本,得到的模型结果存在差异:神经元权重差异较大,拟合值与预测值有细微差别。 - 已确认的一致性条件:
- 已在
nnet()函数前设置相同随机种子,且通过set.seed()后执行sample()验证,两边随机化结果一致;初始化权重(Wts)统一设为1 - 模型输入的光谱数据完全相同
- 同时构建的PLS、GPR、SVR等非随机模型结果完全一致
- R版本均为4.2.2,
nnet()及依赖包均从同一仓库更新
- 已在
- 疑问:目前无法确定差异原因,怀疑是操作系统差异导致的舍入、排序差异影响了
nnet()函数的执行,期望实现ANN模型的权重、拟合值及预测值完全一致。
模型代码
cv_wts <- rep(1,cv_wts_n) set.seed(seed) cal <- nnet(TV ~ NIR, data = training_dat, size = n, decay = d, Wts = cv_wts, linout=TRUE, maxit = 1000000, MaxNWts = 1000000, trace = FALSE)
内容的提问来源于stack exchange,提问作者N Anderson
相关产品推荐
相关产品推荐

