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。
与数据有关,根据不同类型的训练,
结果会不同一样的。