24小时热门版块排行榜    

查看: 1923  |  回复: 1

dy1029

新虫 (正式写手)

[交流] MATLAB小白,最近刚着手学习神经网络,但是一直仿真不出来。。

各位大神,如标题所示,代码如下:
clc;clear;
% 输入已知数据 %
A=load('已知数据.mat');
bp1=A(:,1)         -读取了已知数据中的第一列即x轴;(70行*1列)
T=A(:,2)            -读取了已知数据中的第二列即y轴;(70行*2列)
net1=newff(bp1,T,20);   ——建立BP神经网络
net1=train(net1,bp1,T);   ——训练网络
M=B(:,1)    —— 读取未知数据第一列即x轴    (10行*1列)
Y1=sim(net1,M)    ——仿真 求出预测数据Y1
plot(bp1,T,'o-');     ——画出已知数据的图形
N=B(:,2)           ——读取未知数据第二列即y轴 (10行*1列)
plot(M,N,'g*');   ——画出未知数据的图
plot(M,Y1,'b-');   ——画出已知X轴数据的预测曲线图
刚入手学习BP神经网络,我的目标是    根据已知x,y的数据,训练之间的关系,在用X+1的数据预测Y+1,最后用这个预测数据和已知的Y+1数据进行对比,看是否预测正确。
计算运行后,出现:1.隐含层到输出层没有箭头表示,是否没有网络建立成功?2.sim函数中 network/sim (line 271) Input data sizes do not match net.inputs{1}.size.
不懂,求教
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

dy1029

新虫 (正式写手)

clear;clc;
a=load('已知数据.mat');
a1=a.A(:,1);  %读取横坐标已知数据%
a2=a.A(:,2);   %读取纵坐标已知数据%
a3=a.B(:,1);  %读取横坐标预测数据,测试数据%
a4=a.B(:,2);   %读取纵坐标预测数据,测试数据%
[p1,minp,maxp,t1,mint,maxt]=premnmx(a1,a2);
%% BP网络训练
% %初始化网络结构
net=newff(p1,a2,[1,10,1],{'tansig','tansig','purelin'},'trainlm');
%%设置训练次数
net.trainParam.epochs = 5000;
%%设置收敛误差
net.trainParam.goal=0.0000001;
%%训练网络
[net,tr]=train(net,p1,t1);
%% BP网络预测
%预测数据归一化
b1=premnmx(a3);
%网络预测输出
b2=sim(net,b1);
%网络输出反归一化
%%将得到的数据反归一化得到预测数据
c=postmnmx(b2,mint,maxt)
%% 结果分析
figure(1)
plot(a3,a4,'g-');
hold on
plot(a3,c,'b*')
legend('期望输出','预测输出')
title('BP网络预测输出','fontsize',12)
ylabel('函数输出','fontsize',12)
xlabel('样本','fontsize',12)
%预测误差
error=BPoutput-a4;
figure(2)
plot(error,'-*')
title('BP网络预测误差','fontsize',12)
ylabel('误差','fontsize',12)
xlabel('样本','fontsize',12)

修改后,仍出现错误使用 network/sim (line 271)
Input data sizes do not match net.inputs{1}.size.

出错 bp1m (line 21)
b2=sim(net,b1);

估计是sim函数用错了,求教!网络图中输出层与隐含层、隐含层和输出层没有箭头连接
2楼2018-07-14 23:17:13
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 dy1029 的主题更新
普通表情 高级回复 (可上传附件)
信息提示
请填处理意见