CIFAR-10を分類してみます。新年から、「PyTorchニューラルネットワーク実装ハンドブック」を斜め読みしながらコードをいじっています。作る」を書いたことがあって、とても懐かしい気がしました。CIFAR-10を分類してみます。2012年に優勝したネットワークで、コンテストに初めてディプラーニングを持ち込み、それまで人が見つけていた特徴量を機械自からが見つける形に転換することで認識精度の驚異的な改善を図り、画像認識の世界に革命を起こしました。百度は、ディープラーニングを研究している会社をどどん買収して行くことになります。その設計図を見てみましょう。3チャンネルの244×244で、そこから後は上下に分かれて上の方は図が切れていますが、上下は同じものです。2つに分かれている理由は、2012年当時のGPUの性能から、全部を1枚のGPUに載せることはできなかったため2枚に分けたのです。dense_1000これが、各ブロックの設定内容です。畳み込み5層+全結合層3層で、途中Max_poolingが3つ入っています。畳み込みを3回繰り返しているのが印象的です。コードで書くと、こんな形。このモデルはILSVRCのコンテスト用のため入力は3*224*224が前提、一方CIFAR-10は3*32*32なので、修正が必要です。padding=2→1)に変更し画像サイズを変更させない様にします。3つあるMaxPool2dの設定を(kernel_size=3→2)に変更します。全結合層の直前でなんとか4*4になるはずです。本当に、そうなるかチェックしてみます。=',features2(test2).shape)オリジナルバージョンとCIFAR-10バージョンで、全結合に繋がる直前の画像サイズを比較するコードです。