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
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
しかし、問題はここで起こった。
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 って吐き出しているので、見つからなかったファイルを確認。
一応、正しいディレクトリに入ってるみたい(なんでFile not found:とか吐き出しているのか…)
しかもよく見るとGPUモードでやってるはずなのに
I0404 14:10:42.529634 27914 caffe.cpp:284] Use CPU.
とかでてるしよく分からん。
lenet_solver.prototxtをいじると良いみたいなん見かけたのでCPU→GPUに変更
しかし同じくコアダンプ。
caffe.cpp:284に飛んでコード眺めたりしてたけどいまいちよくわからんかった。(雑魚)
ちなみにCPUモードでトライしてみたけどうまく行かなかった。
やってることは同じなので省略。
困っている人たちは結構いるみたい
まとめ
結局わからない
ハードとの相性が悪いのかも。。。?(根拠はない)
誰か詳しい人がいたら助けてください。
ぽきたに!w
— ツイートは少ないほうが良い (@tacky0612) 2017年4月21日