?? sofmtrain.m
字號:
% 自組織特征映射模型(Self-Organizing feature Map),認為一個神經(jīng)網(wǎng)絡(luò)接受外界輸入模式時,將會分為不同的區(qū)域,各區(qū)域?qū)斎肽J骄哂胁煌捻憫?yīng)特征,同時這一過程是自動完成的。各神經(jīng)元的連接權(quán)值具有一定的分布。最鄰近的神經(jīng)元互相刺激,而較遠的神經(jīng)元則相互抑制,更遠一些的則具有較弱的刺激作用。自組織特征映射法是一種無教師的聚類方法。
% 此為Sofm網(wǎng)絡(luò)訓(xùn)練程序
function retstr = SofmTrain(ModelNo,NetPara,TrainPara,DataDir)
NNTWARN OFF
retstr=-1;
%%%% 輸入?yún)?shù)賦值開始 %%%%%%%%%%%%%%%%%%%%%%%
% 方便調(diào)試程序用,程序調(diào)試時去掉這部分的注釋
ModelNo='1';
% 網(wǎng)絡(luò)參數(shù)
NetPara(1)=1; %輸入層節(jié)點數(shù)
NetPara(2)=5; %分類數(shù)
NetPara(3)=65536; %訓(xùn)練數(shù)據(jù)組數(shù)
% 訓(xùn)練參數(shù)
TrainPara(1)=50; % 訓(xùn)練過程每df步顯示1次數(shù)
TrainPara(2)=3000; % 最大訓(xùn)練步數(shù)
TrainPara(3)=0.02; % 學(xué)習(xí)率
% 當前程序路徑
DataDir='.';
%%%% 輸入?yún)?shù)賦值結(jié)束 %%%%%%%%%%%%%%%%%%%%%%%%
% 保留原目錄
olddir=pwd;
% 進入數(shù)據(jù)所在目錄
cd(DataDir);
% 網(wǎng)絡(luò)參數(shù)
InputDim=NetPara(1); %輸入層節(jié)點數(shù)
ClassifyNum=NetPara(2); %分類數(shù)
DataNum=NetPara(3); %訓(xùn)練數(shù)據(jù)組數(shù)
frin_para=fopen(sprintf('input_para%s%s',ModelNo,'.txt'),'r'); %輸入數(shù)據(jù)文件
[x,count]=fscanf(frin_para,'%f',[InputDim,DataNum]); %取輸入數(shù)據(jù)
fclose(frin_para);
% 對前向網(wǎng)絡(luò)進行初始化
w=initsm(x,ClassifyNum);
% 訓(xùn)練過程每df步顯示1次數(shù)
df=TrainPara(1);
% 最多訓(xùn)練步數(shù)
me=TrainPara(2);
% 學(xué)習(xí)率
lr=TrainPara(3);
% 神經(jīng)網(wǎng)絡(luò)訓(xùn)練參數(shù)
tp=[df me lr];
m=nbgrid(ClassifyNum);
% 訓(xùn)練競爭層
w=trainsm(w,m,x,tp);
% 將訓(xùn)練結(jié)果權(quán)值寫入文件
fww=fopen(sprintf('w%s%s',ModelNo,'.dat'),'w');
fprintf(fww,'%9.4f ',w);
fclose(fww);
cd(olddir);
retstr=1;
close all;
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -