update.はじめに『PythonとKerasによるディープラーニング』の5章のサンプルをお手本に、自分のデータセットでCNNによる良品と不良品の判別をやってみたので、本のサンプルからの変更点を中心にメモしておきます。161)で、グレイ画像。データセットの写真は全部で18000枚。不良品画像は良品画像の9000枚に、人工的に作ったキズの画像をランダムな位置、貼り付け角度で張り付けたもの。(実際の不良品写真は使用していない)実際の不良品画像を使用しないのは、写真のサイズを縮小しても不良箇所がわかるようにするためです。簡単に精度が出るように不良箇所をやや強調しています。今回は実験なので、縮小画像を読み込むことでモデルを小さくして、学習時間も短くなるようにしています。写真の保存先を設定しておきます。'test')モデルの定義モデルの構成は犬猫判別の例を参考に次のように設定しました。良品と不良品を見分ける2クラス分類なので、モデルの最終出力は1つで、活性化関数にはsigmoidを使っています。(犬猫の例と同じ)犬猫判別の例との違いは層構成と入力画像サイズだけです。metrics=['acc'])model.summary()で確認すると次のようになります。学習可能なパラメータ数は約380万と、犬猫判別の例と同等にできました。犬猫判別の例と同じように、ImageDataGeneratorを使ってモデルに画像を供給します。例との違いはcolor_mode='grayscale'を追加したことです。画像の縮小もここで設定しています。犬猫判別の例との違いはエポック数を10に減らした点のみです。犬猫判別の例と同じように学習の軌跡を表示します。loss')plt.legend()plt.show()学習の結果、精度は次のようになりました。過学習も見られず、精度も99%超と高い水準で張り付いており、うまくいっているようです。upLoginユーザーは見つかりませんでした。