• 大小: 340KB
    文件类型: .zip
    金币: 2
    下载: 1 次
    发布日期: 2021-07-28
  • 语言: Matlab
  • 标签: 基于matlab  

资源简介

BP神经网络识别手写数字项目代码,matlab版本,附带图片识别包,直接使用。原理及代码分析:https://blog.csdn.net/huang_miao_xin/article/details/51364152 因为原程序和博主发的解析有点问题,花了点时间处理了,傻瓜式操作,直接下载解压放E盘。打开matlab即可运行。

资源截图

代码片段和文件信息

V=double(rand(25664));
W=double(rand(6410));
delta_V=double(rand(25664));
delta_W=double(rand(6410));
% lf=0;用来看错误在哪一步的参考数据

yita=0.2;%缩放系数,有的文章称学习率
yita1=0.05;%我自己加的参数,缩放激活函数的自变量防止输入过大进入函数的饱和区,可以去掉体会一下变化
train_number=9;%训练样本中,有多少个数字,一共9个,没有0
train_num=30;%训练样本中,每种数字多少张图,一共100张
x=double(zeros(1256));%输入层
y=double(zeros(164));%中间层,也是隐藏层
output=double(zeros(110));%输出层
tar_output=double(zeros(110));%目标输出,即理想输出
delta=double(zeros(110));%一个中间变量,可以不管

%记录总的均方差便于画图
s_record=1:1000;
tic %计时
for train_control_num=1:1000   %训练次数控制,在调参的最后发现1000次其实有多了,大概400次完全够了
    s=0;
%读图,输入网络
for number=1:train_number %train_number=9
ReadDir=[‘E:\BP\test_picture\‘];%读取样本的路径
for num=1:train_num  %控制多少张  train_num=30
photo_name=[‘img00‘num2str(number) ‘-‘num2str(num‘%05d‘)‘.png‘];%图片名
photo_index=[ReadDirphoto_name];%路径加图片名得到总的图片索引
photo_matrix=imread(photo_index);%使用imread得到图像矩阵
photo_matrix=imresize(photo_matrix[1616]);
photo_matrix=uint8(photo_matrix<=230);%二值化,黑色是1

tmp=photo_matrix‘;
tmp=tmp(:);%以上两步完成了图像二维矩阵转变为列向量,256维,作为输入
%计算输入层输入
x=double(tmp‘);%转化为行向量因为输入层X是行向量,并且化为浮点数
%得到隐层输入
y0=x*V;
%激活
y=1./(1+exp(-y0*yita1));
%得到输出层输入
output0=y*W;
% lf=lf+1;之前用来看错误在哪一步的参考数据
output=1./(1+exp(-output0*yita1));
%计算预期输出
tar_output=double(zeros(110));
tar_output(number)=1.0;
%计算误差
%按照公式计算W和V的调整,为了避免使用for循环比较耗费时间,下面采用了直接矩阵乘法,更高效
delta=(tar_output-output).*output.*(1-output);
delta_W=yita*repmat(y‘110).*repmat(delta641);
tmp=sum((W.*repmat(delta641))‘);
tmp=tmp.*y.*(1-y);
delta_V=yita*repmat(x‘164).*repmat(tmp2561);
%计算均方差
s=s+sum((tar_output-output).*(tar_output-output))/10;
%更新权值
W=W+delta_W;
V=V+delta_V;
end
end
s=s/train_number/train_num  %不加分号,随时输出误差观看收敛情况
train_control_num           %不加分号,随时输出迭代次数观看运行状态
s_record(train_control_num)=s;%记录
end
toc %计时结束
plot(1:1000s_record);

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2019-06-08 00:18  BP\
     目录           0  2019-06-08 00:13  BP\test_picture\
     文件         339  2009-08-14 16:18  BP\test_picture\img001-00001.png
     文件         349  2009-08-14 16:18  BP\test_picture\img001-00002.png
     文件         795  2009-08-14 16:18  BP\test_picture\img001-00003.png
     文件         828  2009-08-14 16:18  BP\test_picture\img001-00004.png
     文件        1063  2009-08-14 16:18  BP\test_picture\img001-00005.png
     文件        1063  2009-08-14 16:18  BP\test_picture\img001-00006.png
     文件        1147  2009-08-14 16:18  BP\test_picture\img001-00007.png
     文件        1147  2009-08-14 16:18  BP\test_picture\img001-00008.png
     文件        1613  2009-08-14 16:18  BP\test_picture\img001-00009.png
     文件        1149  2009-08-14 16:18  BP\test_picture\img001-00010.png
     文件        1716  2009-08-14 16:18  BP\test_picture\img001-00011.png
     文件        1249  2009-08-14 16:18  BP\test_picture\img001-00012.png
     文件        1234  2009-08-14 16:18  BP\test_picture\img001-00013.png
     文件        1179  2009-08-14 16:18  BP\test_picture\img001-00014.png
     文件        1320  2009-08-14 16:18  BP\test_picture\img001-00015.png
     文件        1242  2009-08-14 16:18  BP\test_picture\img001-00016.png
     文件        1118  2009-08-14 16:18  BP\test_picture\img001-00017.png
     文件         990  2009-08-14 16:18  BP\test_picture\img001-00018.png
     文件        1227  2009-08-14 16:18  BP\test_picture\img001-00019.png
     文件        1241  2009-08-14 16:18  BP\test_picture\img001-00020.png
     文件        1118  2009-08-14 16:18  BP\test_picture\img001-00021.png
     文件         990  2009-08-14 16:18  BP\test_picture\img001-00022.png
     文件        1227  2009-08-14 16:18  BP\test_picture\img001-00023.png
     文件        1241  2009-08-14 16:18  BP\test_picture\img001-00024.png
     文件        1158  2009-08-14 16:18  BP\test_picture\img001-00025.png
     文件        1057  2009-08-14 16:18  BP\test_picture\img001-00026.png
     文件        1251  2009-08-14 16:18  BP\test_picture\img001-00027.png
     文件        1164  2009-08-14 16:18  BP\test_picture\img001-00028.png
     文件         980  2009-08-14 16:18  BP\test_picture\img001-00029.png
............此处省略272个文件信息

评论

共有 条评论