数学建模社区-数学中国
标题:
神经网络Matlab程序
[打印本页]
作者:
(_⊙o⊙_)哇
时间:
2013-8-26 15:00
标题:
神经网络Matlab程序
%
读入训练数据和测试数据
Input = [];
Output = [];
str = {'Test','Check'};
Data = textread([str{1},'.txt']);
%
读训练数据
Input = Data(:,1:end-1);
%
取数据表的前五列(主从成分)
Output = Data(:,end);
%
取数据表的最后一列(输出值)
Data = textread([str{2},'.txt']);
%
读测试数据
CheckIn = Data(:,1:end-1);
%
取数据表的前五列(主从成分)
CheckOut = Data(:,end);
%
取数据表的最后一列(输出值)
Input = Input';
Output = Output';
CheckIn = CheckIn';
CheckOut = CheckOut';
%
矩阵转置
[Input,minp,maxp,Output,mint,maxt] = premnmx(Input,Output);
%
标准化数据
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
神经网络参数设置
%====
可以修正处
Para.Goal = 0.0001;
%
网络训练目标误差
Para.Epochs = 800;
%
网络训练代数
Para.LearnRate = 0.1;
%
网络学习速率
%====
Para.Show = 5;
%
网络训练显示间隔
Para.InRange = repmat([-1 1],size(Input,1),1);
%
网络的输入变量区间
Para.Neurons = [size(Input,1)*2+1 1];
%
网络后两层神经元配置
Para.TransferFcn= {'logsig' 'purelin'};
%
各层的阈值函数
Para.TrainFcn = 'trainlm';
%
网络训练函数赋值
% traingd :
梯度下降后向传播法
% traingda :
自适应学习速率的梯度下降法
% traingdm :
带动量的梯度下降法
% traingdx :
%
带动量,自适应学习速率的梯度下降法
Para.LearnFcn = 'learngdm';
%
网络学习函数
Para.PerformFcn = 'sse';
%
网络的误差函数
Para.InNum = size(Input,1);
%
输入量维数
Para.IWNum = Para.InNum*Para.Neurons(1);
%
输入权重个数
Para.LWNum = prod(Para.Neurons);
%
层权重个数
Para.BiasNum = sum(Para.Neurons);
%
偏置个数
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Net = newff(Para.InRange,Para.Neurons,Para.TransferFcn,...
Para.TrainFcn,Para.LearnFcn,Para.PerformFcn);
%
建立网络
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Net.trainParam.show = Para.Show;
%
训练显示间隔赋值
Net.trainParam.goal = Para.Goal;
%
训练目标误差赋值
Net.trainParam.lr = Para.LearnRate;
%
网络学习速率赋值
Net.trainParam.epochs = Para.Epochs;
%
训练代数赋值
Net.trainParam.lr = Para.LearnRate;
Net.performFcn = Para.PerformFcn;
%
误差函数赋值
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
调试
Out1 =sim(Net,Input);
%
仿真刚建立的网络
Sse1 =sse(Output-Out1);
%
刚建立的网络误差
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
[Net TR] = train(Net,Input,Output);
%
训练网络并返回
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Out3 =sim(Net,Input);
%
对学习训练后的网络仿真
作者:
别离
时间:
2013-9-5 14:26
啊啊啊啊啊啊啊啊啊啊阿啊啊啊啊啊啊啊啊阿啊啊
欢迎光临 数学建模社区-数学中国 (http://www.madio.net/)
Powered by Discuz! X2.5