LoginSignup
7

More than 5 years have passed since last update.

Deep PredNetの学習済みモデルを走らせる

Last updated at Posted at 2016-09-09

過去8回でパソコンを自作した後に、Ubuntu14.04、CUDA、cuDNN、chainer、dqn、LIS、Tensorflow、OpenAIGymを順次インストールし、最後にOpenAIGym上でA3Cのコードを走らせた。
http://qiita.com/masataka46/items/1a63b8747e83012a1ff4

A3Cを走らせる際にTheanoとKerasをインストールしたので、それを使ってW.Lotter氏らのPredNetを走らせてみる。Literatureはこちら。
https://arxiv.org/abs/1605.08104
HPはこちら
https://coxlab.github.io/prednet/
日本語の解説としてはochiai氏がまとめてくれている。
http://karasunoblog.blog20.fc2.com/blog-entry-46.html
GitHub上のコードはこちら。
https://github.com/coxlab/prednet
ざっくり言うと、「CNNやLSTMなどを階層構造にまとめて一瞬先の未来を予測しましょう」というモデル。

PredNetを入れる

適当なディレクトリを作ってgit cloneする。

git clone https://github.com/coxlab/prednet.git

訓練データをゲットする

READMEの指示に従って訓練データ(評価データも含む?)を引っ張ってくる。

cd prednet
python process_kitti.py
Traceback (most recent call last):
  File "process_kitti.py", line 7, in <module>
    from bs4 import BeautifulSoup
ImportError: No module named bs4

上記のようなエラーが表示された。BeautifulSoupという得体の知れないものが必要らしい。とりあえずそれを再度実行。

sudo pip install BeautifulSoup4
・・・
python process_kitti.py
Traceback (most recent call last):
  File "process_kitti.py", line 11, in <module>
    import hickle as hkl
ImportError: No module named hickle

今度はhickleというものが足りないらしい。pipで入れて、再度実行。

sudo pip install hickle
・・・
Successfully installed h5py-2.6.0 hickle-2.1.0
python process_kitti.py

途中、BeautifulSoup4関係でWarningが出てたが、ダウンロードは問題ないみたい。ただし、160GBすべてダウンロードするのに42時間かかった。

評価用のモデルやデータも入手する

同様に評価用のモデルやデータも入手する。

./download_models.sh
./download_data.sh

学習済み評価モデルを走らせる

何も考えずに

python kitti_evaluate.py

としたところ、以下のようなエラーが出た。

AssertionError: ('The following error happened while compiling the node'
・・・
'AbstractConv2d Theano optimization failed: there is no implementation available supporting the requested options. Did you exclude both "conv_dnn" and "conv_gemm" from the optimizer? If on GPU, is cuDNN available and does the GPU support it? If on CPU, do you have a BLAS library installed Theano can link against?'

なんだかいろいろ書いている。optimizationがうまくいかなかったらしい。optionで何かを指定したが、利用可能なものがなかったとも書いている。

「GPUやcuDNN使うなら互換性がなく、CPU使うならBLASがない」などと言っている。cuDNNもCUDAもちゃんとインストール出来てるが、CUDA8.0とかcuDNN5.0にtheanoが対応してないのか不明。

そもそも引数でGPUとか指定していないが、どっちを使おうとしているのかもわからない。kitti_evaluate.pyにはCPUやGPUに関して書かれていない。設定ファイルで指定しているのだろうか?

そこで調べたところ、このサイト
http://takatakamanbou.hatenablog.com/entry/2014/08/26/150629
には「THEANO_FLAGS=mode=FAST_RUN,device=gpu,floatX=float32 python ・・」のような書き方をしているので真似してみる。

THEANO_FLAGS=mode=FAST_RUN,device=gpu,floatX=float32 python kitti_evaluate.py

するとうまくいった。この画像は出力の1つ。
plot_47.png
上側実際の画像と下側予測画像を比べると、結構合っているようだ。速く動くものは速い速度で、ゆっくり動くものは遅い速度で移動させている。

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7