Neural Network Consoleで画像を判別させる(5)おまけ:学習結果はどう使う?
おまけの記事ですが、今までの記事とは違って、少しややこしい内容のため、Neural Network Consoleで機械学習が試せればいい人は読み飛ばしてください。
学習結果はどう使う?
さて、これで学習モデルが作成できましたので、最後はこれを使って実際の画像を判定してみましょう。
…と言いたいところなのですが、ここは2018年1月現時点(執筆当時)では画面やコマンド一発で簡単に、とはいかないようで、nnablaというNeural Network Console内のライブラリのCのソースをビルドして、実行環境を作り、そこから動かす必要があるようです。
(現時点ではドキュメントもTODO状態で未整備。)
今回は最終的に動かすところまで辿り着けなかったのですが、Linux上でのビルドまでは試せたため、参考までにそのコマンドを書いておきます。
sudo apt update sudo apt-get install -y --no-install-recommends ccache cmake curl g++ make unzip git sudo apt install python-dev python-pip python-setuptools python-virtualenv sudo pip install --upgrade pip curl -L https://github.com/google/protobuf/releases/download/v3.1.0/protoc-3.1.0-linux-x86_64.zip -o /tmp/protoc-3.1.0-linux-x86_64.zip sudo unzip -d /usr/local /tmp/protoc-3.1.0-linux-x86_64.zip && sudo chmod 755 /usr/local/bin/protoc sudo apt-get install libhdf5-dev libarchive-dev curl -L https://github.com/google/protobuf/archive/v3.1.0.tar.gz -o protobuf-v3.1.0.tar.gz tar xvf protobuf-v3.1.0.tar.gz cd protobuf-3.1.0 mkdir build && cd build cmake -DCMAKE_POSITION_INDEPENDENT_CODE=ON -Dprotobuf_BUILD_TESTS=OFF ../cmake make sudo make install cd sudo apt-get install libprotobuf-dev protobuf-compiler sudo pip install six git clone https://github.com/sony/nnabla mkdir -p nnabla/build && cd nnabla/build cmake .. -DBUILD_CPP_UTILS=ON -DBUILD_PYTHON_PACKAGE=OFF -DNNABLA_UTILS_WITH_HDF5=ON sudo make sudo make install sudo ldconfig -v
実行した環境は、Vagrant(開発環境を作成するツール)のubuntu/xenial64 (v20180112.0.0) のボックスです。
…って、コマンドだけ書かれても分けが分からない感じですよね。。。
結論としては、nnablaのマニュアルのBuild on Linuxの環境構築手順と、Build C++ librariesの手順を行うことでビルドが可能でした。
さて、ビルドしたnlabコマンドの実行方法ですが、肝心のドキュメントがなく、残念ながら今回は確認できませんでした。ただ、以下のようにNeural Network Consoleで作成した学習モデルを指定して実行するようです。
nbla infer --executor=Executor --batch_size=1 CatCategory/CatCategory.files/20170824_163030/net.nntxt CatCategory/CatCategory.files/20170824_163030/parameters.h5 image.png
しかし、私の環境では入力データのファイルサイズがおかしい(Data size mismatch on data 0. expected size is 196608 but data file [image.png] size is 117030.)と言われてしまいました…何か違うのでしょうか?
残念ながら、今回はここで断念です。今後のドキュメント整備を期待します!
※または、上記以外にもNeural Network Consoleからnnabla用のpythonのネットワークコードをエクスポートすることができるので、それを活用する想定のようです。
以上、画面操作だけで機械学習を体験できるということで、私のような機械学習初心者には大変ありがたいツールでした。こうした技術も何かゲームに生かしていきたいですね。