アラカン"BOKU"のITな日常

文系システムエンジニアの”BOKU”が勉強したこと、経験したこと、日々思うこと。

NNabla(Neural Network Libraries)をWindowsのanaconda(python3.5)環境にインストール

ニューラルネットワークコンソール(Neural Network Console)は、「人工知能(AI)を実現するディープラーニング(深層学習)の統合開発環境」です。

 

SONYニュースリリースにそう書いてあります。

www.sonynetwork.co.jp

 

一部引用します。

一般的なディープラーニングのプログラム生成においては、ニューラルネットワークの構造を、プログラムのコードを記述して、その関数ブロックを組み合わせることで構築しています。

一方、新開発のコンソールソフトウェアでは、この関数ブロックの概念をそのままに、簡便な形でGUI上に表現できます。

コンソールソフトウェアの画面上には、コンポーネントの形であらかじめレイヤー(関数ブロック)が用意されており、それらをGUI上に自由に配置する簡単な操作でニューラルネットワークを構築でき、プログラム開発効率を大幅に改善します。

 

ここでいうプログラム開発の前提になっているのが、Neural Network Libraries(NNabla)というわけですね。

 

統合開発環境ということは、ニューラルネットワークコンソールで設計・学習・評価の試行錯誤をして、最適化できたものを、ソースコードに落とし込めるということです。

 

実際、ニューラルネットワークコンソールのEDITタブのActionで、pythonソースコードにエクスポートできます。f:id:arakan_no_boku:20170923225209j:plain

 

だったら、この先、エクスポートしたコードをPythonで実行したくなる時が来ると思うので、一度、NNabla(Neural Network Libraries)をインストールしておこうかということです。

 

2017/12/02追記

上記および以降の説明のニューラルネットワークコンソールの画面は、Version1.00のものです。

>Version1.10ではアイコンのデザイン等が少し変わってます。

>ただ、見てわかる範囲と判断して特に貼り替えはしていません。

 

NNabla(Neural Network Libraries)のインストール

一番、シンプルな以下のパターンでやります。

  • CPUサポートのみ
  • anaconda(3)にインストールする。

 

手順は、こうです。

  1. anaconda(python)をインストールする。(3.5 64ビット版)
  2. anacondaに、NNablaの領域を作る
  3. NNablaをインストールする。
  4. インストールできたか動作確認する

 

1.anacondaをインストールする

手順は、ここでは書きません。

 

例えば「anaconda windows インストール」でググれば、でてきますから。

 

Anaconda を利用した Python のインストール (Windows)

とかですね。

 

2.anacondaに、NNablaの領域を作る

 

Windowsコマンドプロンプト か anaconda prompt を起動します。(スタートメニューのanaconda3の下にあります)

 

そこで以下のコマンドを打ち込みます。 

conda create --name=nnabla python=3.5

 

f:id:arakan_no_boku:20170304170658j:plain

 

途中で、問い合わせしてくるので、[y]と答えます。

 

構築が始まります。

 

しばらく(数分)で終わります。

 

成功すると、こんな画面で終わります。

f:id:arakan_no_boku:20170923231827j:plain

 

できたかどうか確認するために、以下のコマンドを入力します。

conda info -e

 

こんな風にnnabla環境ができていればOKです。

f:id:arakan_no_boku:20170923232004j:plain

  

3.NNablaをインストールする。 

インストール作業をする前に確認です。

 

NNableの一部機能は、VC++14(VisualStudio2015相当)でコンパイルされているので、VisualStudio2015のRuntimeが必要です。

 

すでにインストールされている場合は、いいですが、なければ先にインストールしておく必要があります。

f:id:arakan_no_boku:20170924132256j:plain

 

NNabla(Neural Network Libraries)環境をアクティブにするコマンドを入力します。

activate nnabla

 

プロンプトに(nnabla)が表示するのを確認します。

f:id:arakan_no_boku:20170924003202j:plain

 

ここで以下のコマンドを実行します。

conda install scipy scikit-image ipython

 

これで、scipy他NNablaのインストールに必要なパッケージがインストールされます。

 

この手順を踏まずに、いきなりインストールしようとすると、色々とエラーがでて途方にくれることになるので、必ず、行ってください。

 

行わない場合にでてくるエラーメッセージ例

などなど。

 

ようするに、Scipyなどをソースからコンパイルしにいこうとするので、ソースを探しに行ったり、VC++コンパイラを探しにいったり・・、するみたいです。

 

 パッケージのインストールが正常終了したら、以下のコマンドでインストールします。

pip install nnabla

 

最後にSuccessfullyとでれば、OKです。

f:id:arakan_no_boku:20170924133537j:plain

 

4.インストールできたか動作確認する

 activate nnabla ができている状態で、ipythonを立ち上げます。

f:id:arakan_no_boku:20170924140633j:plain

 

ここで、nnablaがimportできればOKです。

f:id:arakan_no_boku:20170924140820j:plain

 

この状態になっていれば、「exit」と打ち込んで、ipythonを終了させてインストール作業は終わりです。

 

importでエラーになって、エラーメッセージが「 No module named win32com・・」とでていれば、追加で、Win32用のパッケージモジュールをインストールする必要があります。(自分はエラーになりました)

 

調べてみたところ、pyWin32 と pypiWin32 の2種類あるみたいです。

 

どちらが良いか、判断つかず、今回はStackTraceの発言を信じて、pypiwin32の方をインストールしました。

pip install pypiwin32

 

再度、nnablaのimportをためして、正常に終了することを確認します。

 

ipythonでのimport確認はこれで正常にいけました。

 

なんですが、後日、iPythonでなく、普通にソースを書いて実行しようとしたら、なんと、win32apiが見つからないというエラーになりました。

 

それを回避するために、結局、pyWin32もインストールしています。

conda install -c anaconda pywin32

 

なので、もしかしたら、pyWin32を先に入れていたら方が両方カバーできていたかもかもしれませんが、自分は確認できてません。 

 

一応、追記しておきます。 

 

以上で、インストールは終わりです。 

 

おまけにバージョンアップのやり方です

本家のサイトにも「Installation on Windows」があります。

 

英語ですけど。

 

もし、GPUも使う場合のコマンド等を参照する場合は、こちらを見てください。

 

上記手順は、実際にやってますから、少なくとも現時点(2017/09/26)では、手順通りにやればサクッとインストールできるはずです。

 

ただ、わりあい変更が頻繁にあったりするものでもありますので、もし、うまくいかない現象を見つけられた方は、コメント等で教えてもらえるとありがたいです。

 

あと、NNablaは結構頻繁にバージョンアップしているみたいです。

 

最新バージョンにするには、activate nnabla をした後で、以下のコマンドを実行すると、バージョンチェックしてアップデートしてくれます。

pip install -U nnabla

 

以上、補足です。

 

2017/12/02追記

バージョンアップ関連の記事は以下にも書いてます。

arakan-pgm-ai.hatenablog.com

 

関連記事

ニューラルネットワークコンソールカテゴリ関連の記事はこちらです。

arakan-pgm-ai.hatenablog.com

f:id:arakan_no_boku:20171115215731j:plain