neuraltalk2をUbuntu VMで使ってみる

      2015/12/17

nt-cam-icon
neuraltalk2をUbuntu VMで使ってみる と題し
評価目的のため事前用意したイメージを処理するUbuntu VMを作ります。

以下のステップをすすめる前に
Dockerが使えるかたは最初からこちらにどうぞ
Neuraltalk2のAuthorはGPUの使用を推奨してますが
Nvidia製GPUが手元にないのでCPUを使います。




VirtualBoxにUbuntu64bitを用意
・Ubuntu14.04 64bit desktop
・HDDに40GB
・CPU割り当て2 CPU
・メモリ4096MB

今回のハマりポイントですがtorchが32bit Ubuntuは非対応なので必ず64bit版を使いましょう。
これを間違うと○時間無駄にします。
CPU数に余裕があるなら設定でCPUを2個以上割り当てるとスピードアップになります。
メモリ2GBではとても遅いので4GBほど割り当てました。

ファイルのダウンロード
必要なファイルをUbuntu VM上にダウンロードしておきます。
Microsoft MS COCOからトレイニング用のイメージをダウンロードします。
2014 Training images [80K/13GB]をダウンロードしました。
次にstanford.eduから事前トレーニング済みのCPU用チェックポイントをダウンロードします。

・train2014-11232015.zip
・checkpoint_v1_cpu.zip

2つをダウンロードしたらダウンロードフォルダに解凍しておきます。

・train2014フォルダ
・model_id1-501-1448236541.t7_cpu.t7ファイル

2つが解凍されます。

Torchのインストール
[bash]
sudo apt-get -y install git curl cmake
curl -s https://raw.githubusercontent.com/torch/ezinstall/master/install-deps | bash ; git clone https://github.com/torch/distro.git ~/torch --recursive
cd ~/torch; ./install.sh
source ~/.bashrc
[/bash]

torchインストール確認のため
thと入力後エンターキーを押します。
するとTorchとロゴが表示された後,Toch7 Scientific computing for Lua...と表示されればTorchのインストールは完了です。
torch

luarocksパッケージインストール
Torchインストール完了後,luarocksを使って以下のパッケージをインストールします。
[bash]
luarocks install nn
luarocks install nngraph
luarocks install image
luarocks install lua-cjson
[/bash]

トレーニングする場合
自分でモデルをトレーニングする場合以下をインストールします。
筆者も一応インストールしておきました。
[bash]
sudo apt-get -y install libprotobuf-dev protobuf-compiler
luarocks install loadcaffe
[/bash]

torch-hdf5のインストール
[bash] git clone https://github.com/deepmind/torch-hdf5
sudo apt-get -y install libhdf5-serial-dev hdf5-tools
cd torch-hdf5
luarocks make hdf5-0-0.rockspec
[/bash]

h5pyのインストール
[bash]
sudo apt-get -y install python-numpy python-six python-pip cython
sudo pip install h5py
[/bash]

Neuraltalk2のインストール
[bash]
cd ~
git clone https://github.com/karpathy/neuraltalk2
[/bash]

ファイナルステップ
必要なものは全て揃ったので実行してみましょう。
※実行前に後から壊れても良いようにVirtualboxにてスナップショットを取りましょう!
-gpuid -1とすることでCPUで処理します。 -num_images 10とすることで10イメージだけ処理し、-1で全てのイメージを処理します。
[bash]
cd neuraltalk2
th eval.lua -gpuid -1 -model /home/user/ダウンロード/model_id1-501-1448236541.t7_cpu.t7 -image_folder /home/user/ダウンロード/train2014/ -num_images 10

[/bash]
thコマンド実行後、遅いと感じる場合はVboxの設定からCPU数を増やしましょう。
nt-done

ローカルホストにHTTP出力します。
[bash]
cd vis ; python -m SimpleHTTPServer
[/bash]

ブラウザで確認
firefoxやChromeにてlocalhost:8000を開きます。
nt-complete

あとがき
neuraltalk2のauthorが意地悪なのか3rdパーティーを信用しないのか
github.com/karpathy/neuraltalk2にて
Running in Docker. If you'd like to avoid dependency nightmares, running the codebase from Docker might be a good option. There is one (third-party) docker repo here.
dependency hellを回避したい人はdockerはここだよ いいオプションかもよって説明の後半に記してます。
もっと最初に書いとけや! どうやってもテストだけならいいオプションだろが!とこの記事を書きながらdockerを見つけた本心ですが人柱になって手順を日本語化しました。
neuraltalk2の評価としてはドキュメントがまだまだ整理されていない感マックスなのでこれ本当に使えんのか?という印象をうけました。
またneuraltalk関連の進展があれば記事にするかもしれません。

それではDo-you-linux.com読者の皆さん良い一日を!
以上!

まだ古いHDDに無駄な時間待たされてますか? 換えたら爆速! SanDisk SSD UltraII 480GB 2.5インチ [国内正規品]メーカー3年保証付
まだ古いHDDに無駄な時間待たされてますか? 換えたら爆速! SanDisk SSD UltraII 480GB 2.5インチ [国内正規品]メーカー3年保証付




TENVIS 100万画素 HD 防水 IP Camera TH692  iOS Android対応 ネットワークカメラ赤外線LED 30個搭載 夜間の視界は15m 防犯カメラ 屋外 TH692
TENVIS 100万画素 HD 防水 IP Camera TH692 iOS Android対応 ネットワークカメラ赤外線LED 30個搭載 夜間の視界は15m 防犯カメラ 屋外 TH692

DBPOWER ワイヤレスカメラ IP66防水 1080PフルHD 200万画素 6MMレンズ COMSセンサー IR-CUT 暗視機能 P2P 動体検知 (1080P)
DBPOWER ワイヤレスカメラ IP66防水 1080PフルHD 200万画素 6MMレンズ COMSセンサー IR-CUT 暗視機能 P2P 動体検知 (1080P)

 - フリーソフト紹介 ,