オライリー・ジャパン刊)を読んでいる時に、参照したサイト等をメモしていきます。このプログラムはフォルダch08にJupyterNoteを作って実行できるようになっています。baseディレクトリ上で実行しようとすると、deep_convert.pyとdeep_conv_net_params.pklの置き場所や呼び出しのあたりをいろいろ変更しないといけなくなります。misclassified_mnist.pyの実行結果DeepConvNetクラスの内容は、これまで説明があったものばかりで、改めて内容を確認する必要はないかと思います。今回はこのクラスを使って、Kaggleの犬猫データセットを処理してみようかと。とファイル名が連番になっています。画像があるということになります。画像はカラーで、大きさはそれぞれ違っています。色)の3次元の配列として格納されています。メモ6の2ではグレースケールに変換しましたが、今回は3色、3チャンネルのデータに変換します。チャンネル3、高さ80、幅80の配列にします。RGBファイルのサイズが(幅、高さ)となっています。これをnumpy配列に変換すると、こうなります。3)(高さ、幅、色)となっています。これをふまえて、画像のサイズを80×80にresizeし、次元の軸を入れ替えて、チャンネル3、高さ80、幅80の配列にします。ところが、上のプログラムでフォルダ内のファイルを連続処理していると、こんなエラーが発生します。fileどうも、transpose(2,0,1)あたりで、次元の軸があってないようです。1074.jpgはメモ6の2で処理した時にもエラーになっています。ファイル読み込み時にエラーになっているようです。666.jpgは、0バイトで空ファイルです。2ビューアで見た限りではカラーの画像で問題なく表示されています。パレットモードとなっているからのようです。そこで読み込み方法を修正してみました。3どうやらこれでいけそうです。別のフォルダに移動させ、メモリーエラーを回避するためにテストデータを100件、訓練データを4000件に絞ることにしました。80)###DeepConvNetクラスDeepConvNetクラスのコードは、フォルダch08内のdeep_convnet.pyにありますが、これには(1,28,28)の入力に合わせた部分があるようです。28)は当然ですが、これはパラメータとして別の値を与えればいいので、問題ではありません。問題となるのは重みW7のサイズです。指定すればいいのですが、入力データが(3,80,80)になることで、こうなります。hidden_size)こう変えないと、プログラムがうまく動きません。これが途中でpooling層を1回通ると半分のサイズになります。