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

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日

悬赏问题

  • ¥15 YOLOv8已有一个初步的检测模型,想利用这个模型对新的图片进行自动标注,生成labellmg可以识别的数据,再手动修改。如何操作?
  • ¥30 NIRfast软件使用指导
  • ¥20 matlab仿真问题,求功率谱密度
  • ¥15 求micropython modbus-RTU 从机的代码或库?
  • ¥15 django5安装失败
  • ¥15 Java与Hbase相关问题
  • ¥15 后缀 crn 游戏文件提取资源
  • ¥20 bash代码推送不上去 git fetch origin master #失败了
  • ¥15 LOL外服加入了反作弊系统,现在游戏录像rofl文件离线都无法打开
  • ¥15 在centos7安装conda