4,368 views
この記事は最終更新から 2010日 が経過しています。
1. プログラム変更仕様
MNISTで提供されるテスト画像だけでなく、自作の手書き文字画像を自動認識 させてみたい。
シンプル構成初期版に追加する機能は以下の通り。
(1)学習機能の仕様追加: 1EPOCH完了ごとに学習済みパラメーターをファイル出力する。
(2)テスト機能の仕様追加: 学習済みパラメーターファイルと単一画像を入力としたテスト機能を新規作成する。
2. 識別結果
意地悪なテスト画像を作ったつもりはないが、結構はずれている… 考察はまた後日にしよう。
No. | 自作画像 | 識別結果 | 出力層出力値 |
1 | ![]() |
OK | ![]() |
2 | ![]() |
OK | ![]() |
3 | ![]() |
OK | ![]() |
4 | ![]() |
OK | ![]() |
5 | ![]() |
OK | ![]() |
6 | ![]() |
OK | ![]() |
7 | ![]() |
OK | ![]() |
8 | ![]() |
OK | ![]() |
9 | ![]() |
NOK | ![]() |
10 | ![]() |
OK | ![]() |
11 | ![]() |
OK | ![]() |
12 | ![]() |
OK | ![]() |
13 | ![]() |
NOK | ![]() |
14 | ![]() |
NOK | ![]() |
15 | ![]() |
NOK | ![]() |
16 | ![]() |
OK | ![]() |
17 | ![]() |
OK | ![]() |
18 | ![]() |
NOK | ![]() |
19 | ![]() |
NOK | ![]() |
20 | ![]() |
NOK | ![]() |
3. プログラムのソースコード
exec_1test.m
function result = exec_1test( gprmMatFile, testImgFile ) % パラメーターファイルをロード load(gprmMatFile); % 画像データをロード img = single(imread(testImgFile)) / 255; % 画像データが2バンド以上の場合 if numel(size(img)) > 3 % グレースケール画像を作成 img = mean(img,3); end % 順伝播 nn = NNET_propagation_forward( gprm.nn, img ); % 判定結果を出力 result.out = nn.layer{numel(nn.layer)}.out; [~, result.maxIdx] = max(result.out); % 棒グラフ表示 bar([0:9], result.out); xlim([-0.5 9.5]); ylim([0 1]); end
シンプル構成初版のプログラムソースコードはこちら。
(4) シンプル構成の初版は正解率91%