求大神解答下这个BP网络训练的MATLAB程序为什么不对
clcclearall%下面俩个参数可变k=1;%设置非线性函数的频率n=10;%设置网络隐单元的神经元数目%定义要逼近的非线性函数p=(-1:0.05:1);t=sin...
clc
clear all
%下面俩个参数可变
k=1;%设置非线性函数的频率
n=10;%设置网络隐单元的神经元数目
%定义要逼近的非线性函数
p=(-1:0.05:1);
t=sin(k*pi*p);
plot(p,t,'-');
title('要逼近的非线性函数');
xlabel('输入向量');
ylabel('非线性函数目标输出量');
%建立相应的bp网络
net=newff(p,t,[n,1],{'tansig','purelin'},'trainlm');
%对没有训练的网络进行仿真
y1=sim(net,p);
%训练网络
net.trainParam.epochs=50;%最大训练次数
net.trainParam.goal=50;%训练目标误差
net=train(net,p,t);
%对训练后的网络进行仿真
y2=sim(net,p);
%绘制训练前后仿真结果对比
figure
plot(p,t,'-',p,y1,'--',p,y2,'*')
title('训练前后对比');
xlabel('输入向量');
ylabel('输出向量');
legend('目标函数输出向量','未训练BP网络输出','已训练BP网络输出'); 展开
clear all
%下面俩个参数可变
k=1;%设置非线性函数的频率
n=10;%设置网络隐单元的神经元数目
%定义要逼近的非线性函数
p=(-1:0.05:1);
t=sin(k*pi*p);
plot(p,t,'-');
title('要逼近的非线性函数');
xlabel('输入向量');
ylabel('非线性函数目标输出量');
%建立相应的bp网络
net=newff(p,t,[n,1],{'tansig','purelin'},'trainlm');
%对没有训练的网络进行仿真
y1=sim(net,p);
%训练网络
net.trainParam.epochs=50;%最大训练次数
net.trainParam.goal=50;%训练目标误差
net=train(net,p,t);
%对训练后的网络进行仿真
y2=sim(net,p);
%绘制训练前后仿真结果对比
figure
plot(p,t,'-',p,y1,'--',p,y2,'*')
title('训练前后对比');
xlabel('输入向量');
ylabel('输出向量');
legend('目标函数输出向量','未训练BP网络输出','已训练BP网络输出'); 展开
1个回答
意法半导体(中国)投资有限公司
2023-06-12 广告
2023-06-12 广告
单片机,即单片微控制器,也称为单片微型计算机,是将中央处理器(CPU)、存储器(ROM,RAM)、输入/输出接口和其他功能部件集成在一块 在一个小块的集成电路上,从而实现对整个电路或系统的数字式控制。单片机不是完成某一个逻辑功能的芯片,而是...
点击进入详情页
本回答由意法半导体(中国)投资有限公司提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询