📄 createsomnet.m
字号:
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%CreateSOMNet(P,ClassNum,MaxCycle,Lr)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
function [Net]=CreateSOMNet(P,T,ClassNum,MaxCycle,Lr)
[R,Q]=size(P);%获得维数R,向量个数Q
P=normc(P);%归一化处理
Net.VectorDim=R;%向量数
Net.VectorNum=Q;%向量数
Net.ClassNum=ClassNum;%分类类别数
Net.MaxCycle=MaxCycle;%最大循环次数
Net.Lr=Lr;%学习率
Net.Winner=0;%获胜类别
Net.CurrentVector=0;%当前类别
Net.InputLayer.Units=Q;%向量个数
Net.InputLayer.Vectors=P;%输入向量
Net.InputLayer.T=T;%输入向量分类标记
Net.OutputLayer.Units=ClassNum;%向量个数
Net.OutputLayer.Vectors=zeros(ClassNum,Q);%输出类别
Net.KohonenLayer.Units=ClassNum;
Net.KohonenLayer.Weight=rands(ClassNum,R);%随机权值
Net.KohonenLayer.dScoreMean=zeros(ClassNum,Q);%距离矩阵
%NB=int16(ClassNum);
NB=ClassNum;
Net.KohonenLayer.Neighbour=zeros(NB,NB);%距离矩阵
for i=1:NB
for j=1:NB
CurrentClassNum=(i-1)*NB+j;
if CurrentClassNum<=ClassNum
Net.KohonenLayer.Neighbour(i,j)=CurrentClassNum;
end
end
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -