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

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 latex投稿显示click download
  • ¥15 请问读取环境变量文件失败是什么原因?
  • ¥15 在若依框架下实现人脸识别
  • ¥15 网络科学导论,网络控制
  • ¥100 安卓tv程序连接SQLSERVER2008问题
  • ¥15 利用Sentinel-2和Landsat8做一个水库的长时序NDVI的对比,为什么Snetinel-2计算的结果最小值特别小,而Lansat8就很平均
  • ¥15 metadata提取的PDF元数据,如何转换为一个Excel
  • ¥15 关于arduino编程toCharArray()函数的使用
  • ¥100 vc++混合CEF采用CLR方式编译报错
  • ¥15 coze 的插件输入飞书多维表格 app_token 后一直显示错误,如何解决?