資源簡介
matlab代碼,里面含有一個BP網絡完整代碼,以及mnist.mat數據集
代碼片段和文件信息
clear
clc
%基于BP的手寫數字識別程序
load?mnist_uint8;
%對mnist數據集進行歸一化處理,并對數據進行轉化為可用的double型
train_x?=?double(train_x(1:20000:)‘)?/?255;
test_x??=?double(test_x(1:10000:)‘)??/?255;
train_y?=?double(train_y(1:20000:)‘);
test_y??=?double(test_y(1:10000:)‘);
?
net=newff(minmax(test_x)[13?10]{‘tansig‘‘purelin‘}‘traingdx‘);%創建一個BP神經網絡
net?=?init(net);%對網絡進行初始化
net.trainparam.show=50;%顯示訓練迭代過程
net.trainparam.epochs=300;%定義訓練步數
net.trainparam.goal=0.008;%設置性能參數
net.trainparam.lr=0.008;
net=train(nettrain_xtrain_y);%訓練網絡
y=sim(nettest_x);
[~?h]?=?max(y);
[~?a]?=?max(test_y);
bad?=?find(h?~=?a);
s2=size(test_y?2);
hitnum=s2-numel(bad);
er?=?numel(bad)?/?size(test_y?2);
sprintf(‘錯誤率是?%3.3f%%\n‘100?*?er?)
sprintf(‘識別正確的個數是?%d%\n‘?hitnum?)
sprintf(‘輸入的總個數是?%d%\n‘?s2?)
%經過調參,反復試驗,最后的到最小的誤識率是8.040%
%各參數為,[13?10]{‘tansig‘‘purelin‘}epoch=2000goal=0.008
%lr=0.008train[1:20000:]t=29:16er=8.040
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????1056??2016-12-23?10:57??BP\Bbpwsl1.m
?????文件???14735220??2016-08-14?11:27??BP\mnist_uint8.mat
?????目錄??????????0??2016-12-23?10:59??BP
-----------?---------??----------?-----??----
?????????????14736276????????????????????3
評論
共有 條評論