问题内容是根据列车的入口速度,出口速度和间隔时间这三个输入量来估计区间距离,T是调整后的期望距离,运行程序出现以下错误
Warning: NEWFF used in an obsolete way.
> In obs_use at 18
In newff>create_network at 127
In newff at 102
In bplizi at 1031
See help for NEWFF to update calls to the new argument list.
Error using traingd (line 102)
Inputs and targets have different numbers of samples.
Error in network/train (line 106)
[net,tr] = feval(net.trainFcn,net,X,T,Xi,Ai,EW,net.trainParam);
Error in bplizi (line 1044)
[net_1,tr]=train(net_1,P,T);
求大神指导!!
以下是原代码:
clear all;
x1=[256*1矩阵];
x2=[256*1矩阵];
x3=256*1矩阵];
P=[x1,x2,x3];
T=[256*1矩阵];
net_1=newff([0,1;0,1;0,1],[6,1],{'tansig','purelin'},'traingdm');
inputWeights=net_1.IW{1,1};
inputbias=net_1.b{1};
% 当前网络层权值和阈值
layerWeights=net_1.LW{2,1};
layerbias=net_1.b{2};
% 设置训练参数
net_1.trainParam.epochs = 10000;
net_1.trainParam.goal = 1e-3;
net_1.trainParam.show=50;
net_1.trainParam.lr=0.05;
net_1.trainParam.mc=0.9;
% 调用 TRAINGDM 算法训练 BP 网络
[net_1,tr]=train(net_1,P,T);
% 对 BP 网络进行仿真
A = sim(net_1,P);
plot(P,T)
% 计算仿真误差
V=net_1.iw{1,1};%输入层到中间层权值
theta1=net_1.b{1};%中间层各神经元阈值
W=net_1.lw{2,1};%中间层到输出层权值
theta2=net_1.b{2};%输出层各神经元阈值
E = T - A;
MSE=mse(E);
figure(1)
plot(E,'- *')
title('BP网络训练误差','fontsize',10)
ylabel('误差','fontsize',10)
xlabel('样本','fontsize',10)
MATLAB BP神经网络多输入单输出代码问题
答案:2 悬赏:10 手机版
解决时间 2021-02-04 15:15
- 提问者网友:缘字诀
- 2021-02-04 00:44
最佳答案
- 五星知识达人网友:未来江山和你
- 2021-02-04 02:12
我也遇到同样的问题,问题是输入向量和目标向量之间有问题,可以把目标向量改成行向量。必须保证输入行数目和目标列数目相等。
全部回答
- 1楼网友:冷風如刀
- 2021-02-04 03:24
在你的代码基础上说了。
clc;clear;
close all;
p=load('originaldata.txt');%你问题最后说的数据文件名跟这个不同。
p1=p';
t=[1];% 这个输出(targets)应该和输入数据对应,输入数据有10个,输出应该也是10个
所以改为 t是一个1x10的行向量,每个元素对应10个输入数据的输出。不知道你的训练数据的输出是不是都是1?我试了试假设你的数据的输出都是1,所以t=ones(1,10),可以运行。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯