先日のNCSだが、caffeのモデルをそのまま使ってCPUで計算した値と、NCS用にコンパイルしてNCSで実行した場合の結果が異なるという事件に悩まされている。
例えばexampleのcat.jpgはこんな画像なんだが…
caffe> 0.469843 n02123045 tabby, tabby cat
ncs> 0.18958 n02124075 Egyptian cat
そもそも自分にもこいつが何キャットなのかうまく判別できないんですが、普通のネコじゃ…ダメなのかな? しかし同じモデルで同じデータを食わせているので、結果は同じになってほしいんだがなぁ。色々やっていると、caffe側が正しそうな気がした。NCSの使い方を間違ってるのかも。イメージのロードのTransformerの引数に固定値を入れているのが間違いなのかもしれない。そこ以外に思いつかないよ。
作ってみたテストプログラムは以下のgistに。bycaffeとbyncs2サブコマンドに同じ引数を与えて使ってます。なかなか難しい。そもそも画像認識したいわけじゃないんだ俺は。誰もが「ひよこ鑑定士」を失業させたいわけじゃない。ここはサクッと終わらせたいのに!
計算スピードはさすがに高速な感じですね。それほど期待していなかったので、そう感じるのかもしれない。GPU使ったらもっと速いんだろうと思う。