📄 sofmtrain.m
字号:
% 自组织特征映射模型(Self-Organizing feature Map),认为一个神经网络接受外界输入模式时,将会分为不同的区域,各区域对输入模式具有不同的响应特征,同时这一过程是自动完成的。各神经元的连接权值具有一定的分布。最邻近的神经元互相刺激,而较远的神经元则相互抑制,更远一些的则具有较弱的刺激作用。自组织特征映射法是一种无教师的聚类方法。
% 此为Sofm网络训练程序
function retstr = SofmTrain(ModelNo,NetPara,TrainPara,DataDir)
NNTWARN OFF
retstr=-1;
%%%% 输入参数赋值开始 %%%%%%%%%%%%%%%%%%%%%%%
% 方便调试程序用,程序调试时去掉这部分的注释
ModelNo='1';
% 网络参数
NetPara(1)=1; %输入层节点数
NetPara(2)=5; %分类数
NetPara(3)=65536; %训练数据组数
% 训练参数
TrainPara(1)=50; % 训练过程每df步显示1次数
TrainPara(2)=3000; % 最大训练步数
TrainPara(3)=0.02; % 学习率
% 当前程序路径
DataDir='.';
%%%% 输入参数赋值结束 %%%%%%%%%%%%%%%%%%%%%%%%
% 保留原目录
olddir=pwd;
% 进入数据所在目录
cd(DataDir);
% 网络参数
InputDim=NetPara(1); %输入层节点数
ClassifyNum=NetPara(2); %分类数
DataNum=NetPara(3); %训练数据组数
frin_para=fopen(sprintf('input_para%s%s',ModelNo,'.txt'),'r'); %输入数据文件
[x,count]=fscanf(frin_para,'%f',[InputDim,DataNum]); %取输入数据
fclose(frin_para);
% 对前向网络进行初始化
w=initsm(x,ClassifyNum);
% 训练过程每df步显示1次数
df=TrainPara(1);
% 最多训练步数
me=TrainPara(2);
% 学习率
lr=TrainPara(3);
% 神经网络训练参数
tp=[df me lr];
m=nbgrid(ClassifyNum);
% 训练竞争层
w=trainsm(w,m,x,tp);
% 将训练结果权值写入文件
fww=fopen(sprintf('w%s%s',ModelNo,'.dat'),'w');
fprintf(fww,'%9.4f ',w);
fclose(fww);
cd(olddir);
retstr=1;
close all;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -