ぽきたに 〜ありきたりな非凡〜

日々の独り言とちょっとした発信

Ubuntu14.04でCaffeを動かそうとしたら、MNISTのテストで躓いた話。

おはようございます。たっきーです。
この前書いた記事に「ゴールが見えてきた」とか書いたけど全然見えなかった。
もう諦めから時間が立ってるけど覚え書きとして残しておく。そのうち学習を深めてから再チャレンジしてみたい。
 
 

前回の続きから

前回はCaffeの単体テストを実行することに成功した。
ので今回では実際にCaffeを動かしてみるということにチャレンジ。
 
 

MNISTとは

MNISTとは、「Mixed National Institute of Standards and Technology database」の略で、手書きの数字「0~9」に正解ラベルが与えられているデータセットです。
 
 
今回はこのデータセットを使用して深層学習とはなんなんやってことを学んで行きたかった。
CaffeだけでなくTensorFlowみたいな大御所でもチュートリアルとして利用してるみたい。
 
 

まずはデータセットをダウンロード

以下コマンドを叩いてデータセットを取得する。
$ cd Caffe/deta/mnist
$ ./get_mnist.sh
 
これでダウンロードは完了。
 
このデータセットをCaffeで入力できるデータの形式に変換する必要があるみたい。
以下コマンド
$ cd
$ cd Caffe
$ ./examples/mnist/create_mnist.sh

 

f:id:tacky0612:20170422033652p:plain

 

CaffeでMNISTのデータセットを学習する

MNISTのデータセットがCaffeで扱えるようにしたので、Caffeでこれのデータを学習させる。
 
以下コマンド
$ ./examples/mnist/train_lenet.sh
 
実行が終了すると 
./examples/mnist/のフォルダににtenet_iter_10000.Caffemodelというファイルが作られる。
この学習結果を元にテストを行う
 
以下のコマンドでこの学習結果を利用したMNISTのテストを行うことができる。
$ ./build/tools/caffe test -model ./example/mnist/lenet_train_test.prototxt -weights ./example/mnist/lenet_iter_10000.caffemodel
 
しかし、問題はここで起こった。
 

f:id:tacky0612:20170422033928p:plain

I0404 14:10:42.529634 27914 caffe.cpp:284] Use CPU.
F0404 14:10:42.935750 27914 io.cpp:36] Check failed: fd != -1 (-1 vs. -1) File not found: ./example/mnist/lenet_train_test.prototxt
*** Check failure stack trace: ***
    @     0x7f7cbb02bdaa  (unknown)
    @     0x7f7cbb02bce4  (unknown)
    @     0x7f7cbb02b6e6  (unknown)
    @     0x7f7cbb02e687  (unknown)
    @     0x7f7cbb7a45d7  caffe::ReadProtoFromTextFile()
    @     0x7f7cbb79f81c  caffe::ReadNetParamsFromTextFileOrDie()
    @     0x7f7cbb7bf60c  caffe::Net<>::Net()
    @           0x40759c  test()
    @           0x406093  main
    @     0x7f7cba034f45  (unknown)
    @           0x406797  (unknown)
    @              (nil)  (unknown)
中止 (コアダンプ)

 

 

「中止(コアダンプ)」…?????
なんぞや。
 

コアダンプとは

コアダンプ(英語:core dump)は、ある時点の使用中のメモリの内容をそのまま記録したものであり、一般に異常終了したプログラムのデバッグに使われる。
 
要するに異常終了したってこと???
エラーの理由が分からないので詰んだ。
 
 

ちょっと悪あがきしようか

一応、トラブルシューティング

File not found: ./example/mnist/lenet_train_test.prototxt って吐き出しているので、見つからなかったファイルを確認。

f:id:tacky0612:20170422034237p:plain

一応、正しいディレクトリに入ってるみたい(なんでFile not found:とか吐き出しているのか…)

 

しかもよく見るとGPUモードでやってるはずなのに

 

I0404 14:10:42.529634 27914 caffe.cpp:284] Use CPU.

 とかでてるしよく分からん。

 

lenet_solver.prototxtをいじると良いみたいなん見かけたのでCPU→GPUに変更

f:id:tacky0612:20170422041424p:plain

 

 

しかし同じくコアダンプ。

f:id:tacky0612:20170422041527p:plain

 

 caffe.cpp:284に飛んでコード眺めたりしてたけどいまいちよくわからんかった。(雑魚)

 

ちなみにCPUモードでトライしてみたけどうまく行かなかった。

やってることは同じなので省略。

 

 

困っている人たちは結構いるみたい

d.hatena.ne.jp

Caffeメモ - RupyWiki

 

まとめ

結局わからない

ハードとの相性が悪いのかも。。。?(根拠はない)

誰か詳しい人がいたら助けてください。

 

 

 

スポンサードリンク