EnsekiTT Blog

EnsekiTTが書くブログです。

犬をモスクと間違えるのは無理があるのでは?と思い、画像の前処理を見直したら間違っていた話

つまりなにしたの?

ensekitt.hatenablog.com
いくらなんでも、この可愛いイッヌをみてモスクはないだろ?って思ってたんだけど、昨日まで出張で手が回らなかったので、
画像の前処理を今日確認したら、案の定間違っていた話。元記事にも訂正入れます。
f:id:ensekitt:20171123155233j:plain

どこが間違っていたの?

「画像をモデルに入れる準備をする」の部分。

npar_img = np.asarray(resize_img, dtype=np.uint8).reshape(224,224,3)
npar_img = npar_img.transpose(2,0,1)
X = npar_img.reshape(3, 224, 224) # これがダメ(これでは行列順が維持されない)
X = X-mean_image
X = np.ndarray((1,3,224,224), dtype=np.float32)

npar_img = np.asarray(resize_img, dtype=np.float32).reshape(224,224,3)
npar_img = npar_img[:,:,::-1] # RGBのままだったのでこれを追加(BGRで扱う)
X = npar_img.transpose(2,0,1)
X = X-mean_image
X = X.reshape(1,3,224,224)

f:id:ensekitt:20171123155246j:plain

どうやって気づいたの?

ラベル付きの複数枚を突っ込んでもでたらめな答えが帰ってきたため。

なぜ間違えたの?

入れている画像を直接確認しなかったため。
Deep Learningは中身の解釈が難しいから入力を必要以上に気にしてあげなきゃいけないのに
そこを怠ったことが問題。

再発防止につとめてまいr

正誤両方入ったコードはこちら

github.com

クリエイティブ・コモンズ・ライセンス
この 作品 は クリエイティブ・コモンズ 表示 4.0 国際 ライセンスの下に提供されています。