Keras-convolution-neural-network
提供:Dev Guides
Keras-畳み込みニューラルネットワーク
以前の桁識別問題のために、モデルをMPLから* Convolution Neural Network(CNN)*に変更してみましょう。
CNNは以下のように表すことができます-
モデルのコア機能は次のとおりです-
- 入力層は(1、8、28)の値で構成されます。
- 最初のレイヤー、 _ Conv2D_ は32個のフィルターとカーネルサイズ(3,3)の「relu」アクティベーション関数で構成されています。
- 2番目のレイヤー、 _ Conv2D_ は64個のフィルターとカーネルサイズ(3,3)の「relu」アクティベーション関数で構成されています。
- 3番目のレイヤー、 _ MaxPooling_ のプールサイズは(2、2)です。
- 5番目のレイヤー、 _ Flatten_ は、すべての入力を単一の次元に平坦化するために使用されます。
- 第6層、 _ Dense_ は、128個のニューロンと「relu」活性化関数で構成されています。
- 7番目のレイヤー、 _ Dropout_ の値は0.5です。
- 8番目の最後の層は、10個のニューロンと「softmax」アクティベーション機能で構成されています。
- categorical_crossentropy を損失関数として使用します。
- オプティマイザーとして* Adadelta()*を使用します。
- *精度*を指標として使用します。
- バッチサイズとして128を使用します。
- エポックとして20を使用します。
ステップ1-モジュールをインポートする
必要なモジュールをインポートしましょう。
ステップ2-データの読み込み
mnistデータセットをインポートしましょう。
ステップ3-データを処理する
モデルに合わせてデータセットを変更して、モデルにフィードできるようにします。
データ処理は、入力データの形状と画像フォーマット構成を除いて、MPLモデルと同様です。
ステップ4-モデルを作成する
実際のモデルを作成してみましょう。
ステップ5-モデルをコンパイルする
選択した損失関数、オプティマイザー、およびメトリックを使用してモデルをコンパイルしてみましょう。
ステップ6-モデルのトレーニング
- fit()*メソッドを使用してモデルをトレーニングしてみましょう。
アプリケーションを実行すると、以下の情報が出力されます-
ステップ7-モデルを評価する
テストデータを使用してモデルを評価してみましょう。
上記のコードを実行すると、以下の情報が出力されます-
テストの精度は99.22%です。 手書きの数字を識別するための最適なモデルを作成しました。
ステップ8-予測
最後に、以下のように画像から数字を予測します-
上記のアプリケーションの出力は次のとおりです-
両方の配列の出力は同一であり、モデルが最初の5つの画像を正しく予測していることを示しています。