SOM神经网络进行模式识别

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
  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值