Above & Beyond

日々のアウトプット記録

Neural Network Console ハンズオンセミナー in NHN Japan

昨日は「Neural Network Console ハンズオンセミナー in NHN Japan」というハンズオンに参加してきました。

nnc.connpass.com

f:id:kabukawa:20181128085907p:plain

会場はNHN Japan CloudGarageさんのイベントスペース。黒を貴重としていてカッコいい!

f:id:kabukawa:20181127185828j:plain f:id:kabukawa:20181127185704j:plain:w510f:id:kabukawa:20181127213948j:plain:w287


Neural Network Consoleとは

ソニーの提供するディープラーニング開発環境

dl.sony.com


Windows版&クラウド版がある

Windows版はWindows環境でしか使えませんが、クラウド版はブラウザで操作できるため、Mac等の環境でも使うことができます。 クラウド版はWebブラウザを使ってGUIで操作していきます。 サポートされるブラウザはChrome(Safariも大丈夫そうということだったので、WebKit系ならOKかも)

また、クラウド版は(制限はあるものの)無料枠が用意されていて、アカウントを作れば誰でも気軽に試すことができます。

無料枠で提供されるもの

クラウドなので、有料で使ったとしても「使った分だけ」の課金です。 こちらはGPUも用意されているので、無料で使ってみて「良さそう」と思ったらそのまま本格的に使い始められるのもいいですね。

価格についてはこちらを参照してください。 dl.sony.com


コーディングレス / コンポーネントドラッグ&ドロップ

使ってみればわかりますが、GUIアルゴリズムを選択したりパラメータの数値をいじったりポチポチしていくだけで

を進めることができます。 また、実行の履歴が残るので、モデルやパラメータを弄ったら上手く行かなかった、という場合でも元に戻したり以前の結果と比較を簡単に行うことができます。


生成したモデルはライブラリ(OSS)を用いてアプリケーションプログラムから利用可能

モデルをアプリケーションプログラムに組み込んで、推論を行うためのライブラリ(OSS)が用意されています。

nnabla.org

サポートされているのは PythonC/C++ですが、DLL等のライブラリ呼び出しが可能であれば他の言語でも利用は可能な気がします。 もっとも、C/C++のライブラリ(API)は自前でビルドする必要があるので、試しに使ってみるのであればPythonが楽かもしれません。 Pythonから使う場合はパッケージになっているので

pip install nnabla

でライブラリのインストールは終わり。すぐに使うことができます。 (但し、Pythonのバージョンが3.6以外だと上手く動かない可能性があるようです)


ハンズオン

ソニー Neural Network Consoleハンズオン資料 github.com

資料に従って進めていきます。

  1. 4と9を区別するディープラーニングを体験する
  2. あやめの種類を見分けるディープラーニングを体験する
  3. 作成したモデル、ネットワークをローカルコンピュータで体験する
  4. 作成したモデル、ネットワークをWebアプリケーションで体験する
  5. より複雑なネットワークをWebアプリケーションで試す

資料に手順が細かく書いてあるので、そのとおりに進めていけば大丈夫です。

  • 1と2はNeural Network Consoleのアカウントを作ってログインできていれば、ブラウザだけですべて確認できます。
  • 3はローカル環境にPython(3.6)環境を用意するか、Googleアカウントを持っていればGoogle Colaboratory上でブラウザだけですべて確認できます。
  • 4以降はローカル環境にPython(3.6)環境を用意しないと確認できないようです。

作業をする上での補足

3をGoogle Colaboratoryで試す場合は資料の手順と若干変えると問題なく実行できます。

推論を行うためのライブラリをpipでインストール

!pip install nnabla

動作確認

!nnabla_cli

サンプルをダウンロード

!wget https://github.com/goofmint/NNC_CLI_DEMO/archive/master.zip
!unzip master.zip
!ls -l

カレントディレクトリを移動 資料では "!cd NNC_CLI_DEMO-master" としていますが、これだと別プロセスでディレクトリ移動が実行されるだけなので、Google Colaboratoryでのカレントディレクトリは変更されません。 なので、Pythonコードでカレントディレクトリを変えます。

import os
os.getcwd()
os.chdir("NNC_CLI_DEMO-master")
os.getcwd()

きちんとカレントディレクトリが移動できたことを確認

!ls -l

Neural Network Consoleで学習させたモデルデータをアップロード (時間制限が有るので、すぐにファイル選択をしてください)

from google.colab import files
uploaded = files.upload()

推論実行

!nnabla_cli forward -c result_train.nnp -d test.csv -o ./

結果確認

!ls -l
!cat output_result.csv

WSLで実行したい場合

WSL(Windows Subsystem for Linux)はWindows10上でLinuxのシェル環境を使うことができるものです。 64bitのWindows10限定ではありますが、

ので、比較的手軽にWindows上でLinux環境を整えることができて、こういうちょっとした確認のときには扱いやすいです。

但し、Windows上に環境を作って実行する場合、Ubuntu 16.04 LTS だと Python3のバージョンが 3.5 なので、Ubuntu 18.04 LTSを使ったほうが良いかもしれません。 自分はUbuntu 18.04 LTSにpython3をインストールした環境で試しましたが、特に問題もなく上手く動きました。

注意点が有るとすれば、コマンド名が

  • python → python3
  • pip → pip3

となっているくらいですかね。エイリアスきれば良いのかもしれませんが。

WSLの環境からは /mnt の下にWindowsのドライブがマウントされて見えます。ダウンロードファイルのフォルダも

/mnt/c/Users/[ユーザー名]/Downloads/

で見えます(書き込みは壊れる可能性があるので推奨はしませんが)し、ハンズオンに有るようなWSL内で起動したローカルhttpサーバーもWindows側から http://localhost:8080/ のような形でアクセス可能です。


参考となる情報源など


まとめ

初めて触ってみましたが、ポチポチやっていくだけでできるのは結構感動しました。 細かいパラメータ設定や調整ができないから仕事に使うには物足りないみたいな意見は有ると思いますが、面倒な環境作成などをやらずに作業に集中できるのは良いなと思いました。 また、アプリケーションに組み込むためのライブラリが用意されているのもいいなと思います。 データ分析だけでなく、アプリケーションに推論エンジンとして組み込むことで、利用の幅が広がりますよね。

というわけで、参加してとても良かったと思います!

おまけ

なにか飲み物の写真を載せないとこのブログらしくない、ということで(笑) f:id:kabukawa:20181127201810j:plain