入力が0以下の時は出力0。入力が0より大きい場合はそのまま出力する。層とのつながりを「25%」無効化しています。activation=’softmax’))#コード解説:全結合層。出力10(0~9の10クラス判定のため)Denseのところで、畳み込みニューラルネットワーク(CNN)の最終的な全結合層の出力次元数の決め方は、判定するクラス数を指定します。上記のコードの場合「0〜9」までの数字を判定するため、全部で「0・1・2・3・4・5・6・7・8・9」の「10」クラスになります。そのため、最終的な全結合層の出力次元数を「10」にします。Softmax関数で総和が1となるように、各出力の予測確率を計算。例「0.1,0,0,0,0,0,0.8,0,0,0.1」(0の確率10%。指定してモデルをコンパイルmodel.compile(loss='categorical_crossentropy',optimizer=Adam(),metrics=['accuracy'])#コード解説:モデルをコンパイル(コンピュータが実行可能な形式に変換)します。交差エントロピー誤差を指定しています。今回のような分類問題(識別問題)などで使われるようです。estimation)を指定しています。学習の最適化手法の1つのようです。訓練時とテスト時にモデルにより評価される評価関数。学習の評価として正解率も計算します。time.time()#コード解説:今回は、計算にかかった時間のスピード計測もするため処理を始めた時間を記録(取得)します。y_test))#コード解説:訓練データで学習を実行します。y_train:訓練データ(画像とラベルデータ)を使用。2048)が使われることが多いようです。公開されているサンプルコードによっては「1000」などのきりの良い数字を使っている場合もあるのではないかと思います。バッチサイズのように、サブセットに分けて学習する理由として、学習する際の異常値の影響を小さくするためのようです。epochs=20:学習する回数を指定します。学習回数を増やすと計算するのに時間がかかります。Colaboratoryではインターネット接続環境で無料で学習を実行できるので、回数を調整する際もありがたいです。Stopping」という手法もあるようですが、個人で情報収集してみた範囲では、学習回数に関して最終的には試行錯誤のようです。verbose:ログ出力の指定。「0」だとログが出ないの設定。y_test):評価用データの指定。y_test)でテスト用データを指定しています。data):機械学習のモデルを学習(調整)するために利用。data):学習に使用していないデータで学習結果を評価。data):機械学習モデルの学習が完了後に、訓練データ・検証データに使用していないテストデータを使用し、最終的な精度・予測結果を評価。data)を同じものとして扱っています。data)を分けた方が良いようです。verbose=0)#コード解説:テスト用データ画像・ラベルで評価。verbose:ログ出力の指定。「0」だとログが出ないの設定。テストデータの交差エントロピー誤差を表示します。テストデータの正解率を表示します。start_time))#コード解説:計算処理にかかった時間を表示します。学習スタート時の時間お疲れ様でした。以上、簡単ではありますがコードの解説です。ある程度、畳み込みニューラルネットワークや機械学習の各種手順について学習されている方であれば、おおよそのイメージはつくのではないかと思います。畳み込みニューラルネットワークのことについてわからない方の場合、チンプンカンプンなことだらけではないかと思います。いった方は・このページのコード解説に出てくる単語について少しずつ調べてみる・畳み込みニューラルネットワークの理論的な内容を調べてみる(入門書やYouTubeの入門動画・ウェブサイトでディープラーニングについて解説しているものなど)を繰り返すことで、今回のコードで実装している大まかな意味が理解できるのではないかと思います。Colaboratory・Keras・MNIST学習の利便性を考え、印刷しやすいようにPDFも作成しておきました。プリンタの印刷設定で、ブックレットなどの冊子風に印刷すると読みやすいのではないかと思います。NAVI機械学習エンジニア・データサイエンティスト専門のフリーランス案件情報サイト【特徴1:AI案件未経験からも対応】AI開発案件が未経験の方でも、実務経験1年以上(ITエンジニア・プログラマー、データアナリスト等)あれば、求人案件の提案も可能。正社員として働いている方でも、現在のスキルや経歴の情報を基に、フリーランスとして独立した際に提案可能な案件を紹介。AI等をチェックしてみてください。Themegraphy。