[ICT] マイクロソフト CNTK (深層学習フレームワーク)
あれれ? CNTK だと思っていたら名称が変わっていましたよ!
Microsoft Cognitive Toolkit
なんてド・ストレートな名称だこと。
Microsoft Computational Network Toolkit の略称ではなくなりました。
wikipedia (日本語)リンクを貼っておきますね。
https://ja.wikipedia.org/wiki/Microsoft_Cognitive_Toolkit
ーーー
■心機一転、セットアップ方法から(ドМコース)
読むのが辛い方は、ラクラクコースまで読み飛ばしを推奨します。
英語が読めて、Pyhton はもとより使用している OS コンソール(コマンドプロンプト)を管理者権限 or sudo で触れることが大前提です。(深層学習を機械で行う前に、まず人間自身を鍛えてこい)
公式ドキュメント(英語)
https://docs.microsoft.com/en-us/cognitive-toolkit/setup-cntk-on-your-machine
Azure HDInsight Spark クラスターで Microsoft Cognitive Toolkit ディープ ラーニング モデルを使用するMicrosoft Cognitive Toolkit (日本語)
https://docs.microsoft.com/ja-jp/azure/hdinsight/hdinsight-apache-spark-microsoft-cognitive-toolkit
後者は用途が限定されることと、何も考えずにデプロイするとクラウド破産懸念もあり・・・。まずは、自分のマシンでセットアップしたほうがいいのではないかな。
1.まず必要なもの 64bit Windows または Linux 環境を準備。
現在 CNTK は 2.0 か 2.1 のどちらかベースとなっており、対応 Python 2.7, 3.4, 3.5, 3.6 、フレーバー(GPU対応環境、CPUだけで頑張る環境)を選定して pip install するので、自分の環境は何かを確認しよう。ここでは、Python 3.5 / CPU only を対象にします。
なお、コマンドプロンプトは管理者権限で開きます。
pip install コマンドです。
pip install https://cntk.ai/PythonWheel/CPU-Only/cntk-2.1-cp35-cp35m-win_amd64.whl
これを叩くときは、Windows 標準コマンドプロンプトを管理者権限でもいいのですが、例外対応1で示すようにエラーが出た場合は、VC++2015 Build Tools に含まれる「Visual C++ 2015 x64 Native Build Tools Command Prompt」を管理者権限で実行すると解決します。
ーーー例外対応1ここから
もしも、pip install 中に「 distutils.errors.DistutilsError: Setup script exited with error: Microsoft Visual C++ 14.0 is required. Get it with “Microsoft Visual C++ Build Tools”: http://landinghub.visualstudio.com/visual-cpp-build-tools 」というメッセージが出た方はその通り従ってください。仮にそのマシンが VC++2017 環境であっても、 VC++2015ビルドツール(推奨構成でディスクサイズ 4GB 必要)です。気になるなら chroot 的な仮想空間としてCNTK 用に VMホストを持てば?あれ、だったら Azure ホスト(※)を最初から、、いや、なんでもないです・・・。
※もしも、ガチで環境構築がメンドクサイなら → https://azuremarketplace.microsoft.com/en-us/marketplace/apps/microsoft-ads.standard-data-science-vm こちらをどうぞ。オールインワンです。
ちなみに Azure 東日本リージョンの参考価格です。1時間あたり70円~340円。
CNTK フレームワークの概念理解だけなら、セットアップにかかる時間効率を考え Azure を有償利用するのはアリです。
Virtual Machine | Configuration | Cost per hour | Total cost | ||||||
---|---|---|---|---|---|---|---|---|---|
Instance | Category | Cores | RAM | Disk Space | Drive Type | ||||
DS3V2* | General Purpose | 4 | 14GB | 28GB | SSD | $0.642 | Free | $0.642 | $477.648 |
DS4V2* | General Purpose | 8 | 28GB | 56GB | SSD | $1.284 | Free | $1.284 | $955.296 |
DS11V2* | Memory Optimized | 2 | 14GB | 28GB | SSD | $0.353 | Free | $0.353 | $262.632 |
DS13V2* | Memory Optimized | 8 | 56GB | 112GB | SSD | $1.385 | Free | $1.385 | $1,030.44 |
DS14V2* | Memory Optimized | 16 | 112GB | 224GB | SSD | $2.617 | Free | $2.617 | $1,947.048 |
DS15V2* | Memory Optimized | 20 | 140GB | 280GB | SSD | $3.271 | Free | $3.271 | $2,433.624 |
ーーー例外対応1ここまで
ーーー例外対応2ここから
コマンドプロンプトに無慈悲なメッセージ
RuntimeError: Broken toolchain: cannot link a simple C program
が、出力された貴方の支援策です。
pip install –upgrade numpy
です。全部自動で pip install がインストールをしてくれるなんて世の中は甘くはありません。
Successfully installed numpy-1.13.1
この出力で一先ず安心ですが、ナムパイは MKL (Intel® Math Kernel Library) が必須です。
入ってなければ、サイパイも不安ですな。
ーーー例外対応2ここまで
2.やっと環境ができたと思います。
===
■セットアップ・ラクラクコース
1.先ずは、ここへアクセス
んで、英語の説明を読んで理解したら I Accept クリックで zipパッケージの自動ダウンロードが始まるので、適宜ローカルフォルダへ展開(展開後のディスクサイズ 297MB)します。
あとの実施手順は全部 https://docs.microsoft.com/en-us/cognitive-toolkit/Setup-Windows-Binary-Script ここに記載されてる通りです。ラクラクコースなので、ご自身でお好きなように。
例:
cd c:\local\CNTK-2-1
cd cntk\Scripts\install\windows
install.bat
↓
実践例(マシンスペックにより時間を要するので、やっぱ Azuremarket から時間貸しを利用するのが、本当のラクラクコースだと思う)
C:\cntk\Scripts\install\windows>install.bat
CNTK Binary Install Script
This script will setup CNTK, the CNTK prerequisites and the CNTK Python environment onto the system.
More help can be found at:
https://docs.microsoft.com/en-us/cognitive-toolkit/Setup-Windows-Binary-ScriptThe script will analyse your machine and will determine which components are required.
The required components will be downloaded in [C:\cntk\Scripts\install\windows\ps\InstallCache]
Repeated operation of this script will reuse already downloaded components.– If required VS2015 Runtime will be installed
– If required MSMPI will be installed
– Anaconda3 will be installed into [C:\local\Anaconda3-4.1.1-Windows-x86_64]
– A CNTK-PY35 environment will be created or updated in [C:\local\Anaconda3-4.1.1-Windows-x86_64\envs]
– CNTK will be installed or updated in the CNTK-PY35 environment
1 – I agree and want to continue
Q – Quit the installation processI
あとは、手順に従って環境変酢も定義もお忘れなく。
Setup CNTK Python Tools For Windows
https://docs.microsoft.com/en-us/cognitive-toolkit/setup-cntk-python-tools-for-windows
2.チュートリアル用サンプルコードの実行確認。
cd c:\local\CNTK-2-1
cd Tutorials\HelloWorld-LogisticRegression
cntk configFile=lr_bs.cntk makeMode=false command=Train出力例
Finished Epoch[42 of 50]: [Training] lr = 0.04287672 * 1000; err = 0.01152817 * 1000; totalSamplesSeen = 42000; learningRatePerSample = 0.039999999; epochTime=0.050296s
Finished Epoch[43 of 50]: [Training] lr = 0.04388479 * 1000; err = 0.01206375 * 1000; totalSamplesSeen = 43000; learningRatePerSample = 0.039999999; epochTime=0.052143s
Finished Epoch[44 of 50]: [Training] lr = 0.04223433 * 1000; err = 0.01105073 * 1000; totalSamplesSeen = 44000; learningRatePerSample = 0.039999999; epochTime=0.057235s
Finished Epoch[45 of 50]: [Training] lr = 0.04208072 * 1000; err = 0.01140516 * 1000; totalSamplesSeen = 45000; learningRatePerSample = 0.039999999; epochTime=0.051414s
Finished Epoch[46 of 50]: [Training] lr = 0.04261674 * 1000; err = 0.01158323 * 1000; totalSamplesSeen = 46000; learningRatePerSample = 0.039999999; epochTime=0.051115s
Finished Epoch[47 of 50]: [Training] lr = 0.04326523 * 1000; err = 0.01164283 * 1000; totalSamplesSeen = 47000; learningRatePerSample = 0.039999999; epochTime=0.051611s
Finished Epoch[48 of 50]: [Training] lr = 0.04225255 * 1000; err = 0.01148774 * 1000; totalSamplesSeen = 48000; learningRatePerSample = 0.039999999; epochTime=0.0509s
Finished Epoch[49 of 50]: [Training] lr = 0.04173276 * 1000; err = 0.01124948 * 1000; totalSamplesSeen = 49000; learningRatePerSample = 0.039999999; epochTime=0.049659s
Finished Epoch[50 of 50]: [Training] lr = 0.04399402 * 1000; err = 0.01202178 * 1000; totalSamplesSeen = 50000; learningRatePerSample = 0.039999999; epochTime=0.052725sCOMPLETED.
ーーー
Nvidia GPU 環境の方はこちらもどうぞ。
cntk configFile=lr_bs.cntk makeMode=false command=Train deviceId=autoすると出力例として
Model has 9 nodes. Using GPU 0.
こんなのが表示されるよ。
ーーー
■緩いまとめ
Deep Lerning (深層学習)環境をセットアップするのが「とてつもなく煩わしい」事象は少なくありません。英語嫌いじゃ!(or コマンド羅列が意味不明だ!)という方にはかなり致命的ですが
そんな方には、まずご自身を学習してみてはいかがでしょうか。
もしも新しい技術を試したい!だけなら悪いことはいいません。
Deep Learning に対応した PaaS 環境を時間貸しで試したほうが良いと思います。
■Azure なら、こんなに簡単調達
気になる価格は次のスクリーンショットで。
1時間あたり税別42円ですって。
1日あたり1,008円デスワヨ。そりゃ、クラウド破産するわな。リソース拡大でw
ものの5分で利用可能ですもの。これを使わないなんて、なんて、どうして、勿体ない。
全部入り。これが、僅か5分で利用開始になるなんて。
RDP なので適度にパケット圧縮も効いててイイ感じ。インターネット網からの接続は不安なら、ExpressRoute による閉域接続をどうぞ。(回線費用は別途しますが)
ご覧いただき有難うございました。
以上