阿白啥也不会 2023-02-16 00:19 采纳率: 100%
浏览 55
已结题

matlab bp神经网络预测代码在2022b报错

在使用2022b版本matlab进行bp神经网络预测,发现在2016a版本可以正常运行的代码在2022b无法运行
报错为:

img


希望得到的解释:报错的意思(相关知识点),代码的修改意见
感谢你的帮助!
附matlab代码:

%读取数据
input=rand(2,1000);
output=input(1,:).*input(2,:);
%训练集,测试集
input_train=input(:,1:900);
output_train=output(1:900);
input_test=input(:,951:end);
output_test=output(951:end);
%数据归一化
[inputn,inputs]=mapminmax(input_train,0,1);%归一化至(0,1)区间
[outputn,outputs]=mapminmax(output_train);
inputn_test=mapminmax('apply',input_test,inputs);%inputs记录映射信息
%构建bp神经网络
net=newff(inputn,outputn,8)%view(net)查看网络
%网络参数
net.trainparam.epochs=1000%训练次数
net.trainparam.lr=0.01%学习效率
net.trainparam.goal=0.000001%训练目标最小误差
%net.dividefcn='';
%bp神经网络训练
net=train(net,inputn,outputn);
%bp神经网络测试
an=sim(net,inputn_test);%用训练好的模型进行仿真
test_simu=mapminmax('reverse',an,outputs);%预测结果反归一化
error=test_simu-output_test;%预测值与真实值的误差
  • 写回答

2条回答 默认 最新

  • GISer Liu 2023-02-16 01:49
    关注

    以下答案引用自GPT-3大模型,请合理使用:

    修改意见!
    
    答:报错的意思是matlab从2016a版本到2022b版本的变化,使得训练参数和输入输出格式存在差异。这里的问题是需要将训练参数进行修改,并且确定输入输出的格式。
    
    代码修改意见:
    1.net.trainParam.epochs=1000; 改为 net.trainParam.epochs=100000,将训练次数增加,以适应bp神经网络的训练要求。
    2.net.trainParam.lr=0.01; 改为 net.trainParam.lr=0.001,将学习效率降低,以适应bp神经网络的训练要求。
    3.mapminmax(input_train,0,1); 改为 mapminmax(input_train); 将输入数据归一化至(-1,1),以适应bp神经网络的输入数据要求。
    4.mapminmax('apply',input_test,inputs); 改为 mapminmax('apply',input_test,inputs,{0,1}); 将测试数据归一化至(0,1),以适应bp神经网络的输入数据要求。
    

    如果我的回答解决了您的问题,请采纳我的回答

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 2月24日
  • 已采纳回答 2月16日
  • 创建了问题 2月16日

悬赏问题

  • ¥20 设计一款异域新娘的视频相亲软件需要哪些技术支持
  • ¥15 stata安慰剂检验作图但是真实值不出现在图上
  • ¥15 c程序不知道为什么得不到结果
  • ¥40 复杂的限制性的商函数处理
  • ¥15 程序不包含适用于入口点的静态Main方法
  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解