clc
close all
clear all
X=[1 0 0 0
1 1 0 0
1 1 1 0
0 1 0 0
1 1 1 1]; % 输入向量
pos=gridtop(5,5); % 输出层定义为二维5*5的矩阵 %定义25个2维数据,其实是存储了25个神经元的位置信息
y=boxdist(pos); % 25*25 y的每一列为第n个神经元到其他神经元的距离,可以搜索距离小于某个值的调整权值
figure(1)
plotsom(pos); % 画出pos的二维平面图
axis([0 4 0 4]); % 定义坐标轴为0到4
hold on
w_matrix=rand(25,4); % 权值随机初始化
dn=zeros(5,25); % 定义输出神经元之间距离
fid=fopen('Som_Weight.txt', 'wt');%留待下面保存权值
fid2=fopen('Som_Weightanlys.txt','wt');
epoch=10000;%迭代/训练次数
for num=1:epoch
%--------------------每训练200次记录输出权值,生成txt文件--------------------
if (num==1)||(rem(num,200)==0) %rem(x,y)表示的是x除以y后的余数,x,y都是整数;初始值、每200次记录输出权值
fprintf(fid,'第%d次训练\n',num);
fprintf(fid,'\n'); %\n相当于一个回车
for j=1:25
w_matrix_out=w_mat
SOM神经网络进行模式识别
最新推荐文章于 2022-01-18 10:22:38 发布