?? artificial-neural-network-training-model.txt
字號:
% 讀入訓練數據和測試數據
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);
% 對學習訓練后的網絡仿真
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -