matlab cpu和gpu训练神经网络为什么结果不同?gpu比cpu效果要差

我用两千多个数据训练一个神经网络,分别用cpu和gpu出来的结果却截然不同,cpu的相关系数R有0.9,gpu只有0.6,我的版本是2022
input=features;

output=data2h_new;
input=input';
output=output';
% input=single(input);
% output=single(output);
% inputG=gpuArray(input);
% outputG=gpuArray(output);
hiddenLayerSize=[10];
net.input.processFcns = {'mapminmax'};
net.output.processFcns = {'mapminmax'};
net=feedforwardnet(hiddenLayerSize);
net.divideParam.trainRatio = 70/100;
net.divideParam.valRatio = 15/100;
net.divideParam.testRatio = 15/100;
net.trainParam.epochs=1000; %训练次数
net.trainParam.lr=0.000001; %学习速率
net.trainParam.goal=0.0000001; %训练目标最小误差
tic
[net,tr] = train(net,input,output,'UseGPU','only','showResources','yes');
% [net,tr] = train(net,input,output);
toc

运行结果及报错内容
我的解答思路和尝试过的方法
我想让两个得到相同的结果,该怎么实现呢

有BN层吧?如果没有的话,建议换一个GPU版本,例如matlab2021

是GPU版本的问题。下一个matlab2021版本试一下,再使用cpu训练就没有出现问题了。

这个博主跟你一样的问题哈。如有帮助,请采纳!
https://blog.csdn.net/qq_43666228/article/details/122074432

每次结果就应该不同吧。。。

cpu本来就比GPU快,你用GPU的好处是可以多开,通常高端上千个核心。DNN 训练通常是一系列的矩阵乘法运算,适合GPU,但是基于哈希表的运算CPU快过GPU。

与数据有关,根据不同类型的训练,
结果会不同一样的。