这是一个来自<神经网络之家>nnetinfo的例子,在matlab2012b运行后的确可以,因为的文本宽度不够,注释挤到第二行了,有些乱,楼主注意区分哪些是代码哪些是注释,
x1 =
[-3,-27,-24,-21,-18,-15,-12,-09,-06,-03,0,03,06,09,12,15,18]; %x1:x1 = -3:03:2;
x2 =
[-2,-18,-16,-14,-12,-1,-08,-06,-04,-02,-22204,02,04,06,08,1,12];%x2:x2 = -2:02:12;
y = [06589,02206,-01635,-04712,-06858,-07975,-08040,
-07113,-05326,-02875
,0,03035,05966,08553,10600,11975,12618]; %y:
y = sin(x1)+02x2x2;
inputData = [x1;x2]; %将x1,x2作为输入数据
outputData = y; %将y作为输出数据
%使用用输入输出数据(inputData、outputData)建立网络,
%隐节点个数设为3其中隐层、输出层的传递函数分别为tansig和purelin,使用trainlm方法训练。
net = newff(inputData,outputData,3,{'tansig','purelin'},'trainlm');
%设置一些常用参数
nettrainparamgoal = 00001;
%训练目标:均方误差低于00001
nettrainparamshow = 400; %每训练400次展示一次结果
nettrainparamepochs = 15000;
%最大训练次数:15000
[net,tr] = train(net,inputData,outputData);%调用matlab神经网络工具箱自带的train函数训练网络
simout = sim(net,inputData);
%调用matlab神经网络工具箱自带的sim函数得到网络的预测值
figure; %新建画图窗口窗口
t=1:length(simout);
plot(t,y,t,simout,'r')%画图,对比原来的y和网络预测的y
你需要的功能比较简单,可以考虑直接使用MATLAB提供的神经网络图形用户界面(Neural Network Graphic User Interface)的功能。
在Matlab命令窗口敲nntool命令调出来,打开Network/Data管理器窗口,再点击New,按步骤 *** 作即可。在里面可以设置哪些是训练数据样本,哪些是验证网络泛化能力的样本。
Matlab神经网络工具箱提供了一系列用于建立和训练bp神经网络模型的函数命令,很难一时讲全。下面仅以一个例子列举部分函数的部分用法。更多的函数和用法请仔细查阅Neural Network Toolbox的帮助文档。
例子:利用bp神经网络模型建立z=sin(x+y)的模型并检验效果
%第1步。随机生成200个采样点用于训练
x=unifrnd(-5,5,1,200);
y=unifrnd(-5,5,1,200);
z=sin(x+y);
%第2步。建立神经网络模型。其中参数一是输入数据的范围,参数二是各层神经元数量,参数三是各层传递函数类型。
N=newff([-5 5;-5 5],[5,5,1],{'tansig','tansig','purelin'});
%第3步。训练。这里用批训练函数train。也可用adapt函数进行增长训练。
N=train(N,[x;y],z);
%第4步。检验训练成果。
[X,Y]=meshgrid(linspace(-5,5));
Z=sim(N,[X(:),Y(:)]');
figure
mesh(X,Y,reshape(Z,100,100));
hold on;
plot3(x,y,z,'')
%采用动量梯度下降算法训练 BP 网络。
close all
clear
echo on
clc
% NEWFF——生成一个新的前向神经网络
% TRAIN——对 BP 神经网络进行训练
% SIM——对 BP 神经网络进行仿真
pause
% 敲任意键开始
clc
% 定义训练样本
% P 为输入矢量 pau
P=[-1,-2,3,1;-1,1,5,-3];
% T 为目标矢量
T=[-1, -1, 1, 1];
pause;
clc
% 创建一个新的前向神经网络
minmax(P)
net=newff(minmax(P),[3,1],{'tansig''purelin'},'traingdm');
% minmax(P)取值范围是P内的最小值到最大值 [3,1]是3个神经元 1维 tansig purelin traingdm各层神经网络的激励函数
% tansig purelin隐含层更改权值的函数 当前输入层权值和阈值
inputWeights=netIW{1,1};
inputbias=netb{1};
% 当前网络层权值和阈值
layerWeights=netLW{2,1};
layerbias=netb{2};
%表示对各层神经网络的权值与阈值传递到相应变量
pause
clc
% 设置训练参数
nettrainParamshow = 50; %训练显示间隔 50次显示一次
nettrainParamlr = 005; %学习步长005学习率
nettrainParammc = 09; %动量项系数09
nettrainParamepochs = 1000; %训练次数1000次
nettrainParamgoal = 1e-3; %训练精度目标为0001
pause
clc
% 调用 traingdm 算法训练 BP 网络
[net,tr]=train(net,P,T);%调用网络指令
pause
clc
% 对 BP 网络进行仿真
A=sim(net,P)
% 计算仿真误差
E=T-A
MSE=mse(E)
pause
clc
echo off
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)