資源簡介
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個文件信息
評論
共有 條評論