Update 2023.11.30

MNIST LeNet(ルネット) Keras TensorFlow, Keras
機械学習ディープラーニング・シャローラーニング ベストプラクティス
TensorFlow, Keras, LeNet の教科書

手書き数字のdata setの MNIST を10クラス(0~9)に分類します

手書き数字のdata setの MNIST を10クラス(0~9)に分類します。モデルは1998年に発表されたLeNet-5(ルネット)です。Convが2層,Denseが3層ですが,accuracy: 0.986 とけっこう良い成績がでます。

1998年に発表されたLeNet-5(ルネット)の論文の中に,他のアルゴリズムと比較したところがあります。エラー率がLeNet-5とほぼ互角だったのがサポートベクタSVMだったのです。

2012年にILSVRCで,AlexNetが1位になるまでディープラーニングが注目されなかったのは,多くは,サポートベクタSVMに関心があったからです。

近年,ゲーミングPCやビットコインのマイニング用にGPUが発達し,それをディープラーニングへと流用することにより,ディープラーニングが実用的になったのです。


(2023-11-30 Python3.10.9(GPUマシン)で動作確認済み)


特徴マップを出力してそれを図にしてパラメータを数えました(61706でした)

上に書いたとおり,Convが2層,Denseが3層です。それぞれにパラメータがあります。構成は,Conv-Pool-Conr-Pool-Flat-Dense-Dense-Denseであり,Pool層とFlat層にはパラメータはありません。

特徴マップにはパラメータの数が出力されていますが,その根拠になる算出式を書いておきました。

入力データは,28x28ピクセルで,trainが60,000点,testが10,000点です。入力データはkeras.datasetsから読み込み,その方法が独特なので注意してください。またけっこう前処理がありますのでコードをみてください。

この構成は,ディープラーニングとしてはほぼ最低限であり,実用的ではないと思われます。練習には最適かと。


下の枠に添付のhtmlファイルは「Jupyter Notebook」の.ipynbファイルをhtml化したものでそれぞれのファイルは左上隅からダウンロードできます。

Python3 on Jupyter Notebook(拡張子.ipynb)on GPU


トップページに戻る
inserted by FC2 system