FPGA開発日記

FPGAというより、コンピュータアーキテクチャかもね! カテゴリ別記事インデックス https://sites.google.com/site/fpgadevelopindex/

Microsoft CNTK 2.0がリリース (インストール試行)

f:id:msyksphinz:20170606011549p:plain

TensorFlowばかりで余り目立っていないが、Microsoft機械学習ツールキットのCNTKのv2.0がリリースされた。

CNTKって、Cognitive Toolkitの略称なのか。初めて知った気がする。

The Microsoft Cognitive Toolkit | Microsoft Docs

f:id:msyksphinz:20170606005647p:plain

CNTKが最初にリリースされたとき、日本人では珍しくやり込んだので、結構本ブログのアクセス数に貢献してくれている。 こうなったら、CNTK v2.0も試行してみるしかないだろう!

CNTKの特徴って?

CNTKの特徴といえば、何といってもその速度だといわれている。

Reasons to Switch from TensorFlow to CNTK | Microsoft Docs

Speed. CNTK is in general much faster than TensorFlow, and it can be 5-10x faster on recurrent networks.

TensorFlowのようにPython Interfaceを持たないCNTKは、ある意味TensorFlowよりも高速かもしれない。 ただし、CNTKの初期リリースのころとは違い、TensorFlowはGPUもサポートしているし、XLAによるバイナリ化も行える。そういう意味では、CNTKはどのくらい進化したのか気になる。

CNTKのインストー

以下を参照する。

Setup CNTK on your machine | Microsoft Docs

sudo apt-get install openmpi-bin
pip install https://cntk.ai/PythonWheel/CPU-Only/cntk-2.0-cp35-cp35m-linux_x86_64.whl

あれ?失敗した。

pip install https://cntk.ai/PythonWheel/CPU-Only/cntk-2.0-cp35-cp35m-linux_x86_64.whl
cntk-2.0-cp27-cp27m-linux_x86_64.whl is not a supported wheel on this platform.

よくよく見てみると、私の環境はUbuntu-16.04でPython-2.7だった。別のパッケージをインストールしなければならないらしい。

sudo pip install https://cntk.ai/PythonWheel/CPU-Only/cntk-2.0-cp27-cp27mu-linux_x86_64.whl
Collecting cntk==2.0 from https://cntk.ai/PythonWheel/CPU-Only/cntk-2.0-cp27-cp27mu-linux_x86_64.whl
  Downloading https://cntk.ai/PythonWheel/CPU-Only/cntk-2.0-cp27-cp27mu-linux_x86_64.whl (109.5MB)
    100% |████████████████████████████████| 109.5MB 16kB/s
Collecting enum34>=1.1.6 (from cntk==2.0)
  Downloading enum34-1.1.6-py2-none-any.whl
Collecting scipy>=0.17 (from cntk==2.0)
  Downloading scipy-0.19.0-cp27-cp27mu-manylinux1_x86_64.whl (45.0MB)
    100% |████████████████████████████████| 45.0MB 40kB/s
Collecting numpy>=1.11 (from cntk==2.0)
  Downloading numpy-1.12.1-cp27-cp27mu-manylinux1_x86_64.whl (16.5MB)
    100% |████████████████████████████████| 16.5MB 113kB/s
Installing collected packages: enum34, numpy, scipy, cntk
Successfully installed cntk-2.0 enum34-1.1.6 numpy-1.12.1 scipy-0.19.0

インストールできた。一応、Pythonを起動してパッケージがロードできるか確認しておこう。

$ python
Python 2.7.12 (default, Nov 19 2016, 06:48:10)
[GCC 5.4.0 20160609] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import cntk as C

上手く行ったようだ。