GPUなWindows PCでCNTKとTensorFlowとVisual Studio 2017とを共存させる方法 (2018年4月版) #cogbot #cntk

しばらく「深層学習」の学習ができずにいる間に、CNTK (Cognitive Toolkit)Tensorflow もアップデートしていました。

仕切り直しに改めてローカルマシンに共存する環境を作ろうと思ったところ、どうも 以前(2017年12月頃) より格段に簡単に作れそう。ありがとう、ツールのアップデート!

本稿では、ローカルマシン (NVIDIA の GPU あり) に以下のツール類を共存させる手順を紹介します。(2018年4月時点)

続きを読む

広告

「Azure Machine Learning Workbench の使い方」発表と資料公開をしました (第11回 Cogbot勉強会) #cogbot

第11回 Cogbot勉強会 (2018年1月23日(火) 開催) で、

Azure Machine Learning Workbench の使い方

というテーマでセッションを担当しました。

続きを読む

Azure Machine Learning Workbench でローカルPC の CNTK を利用する #cntk #cogbot

本稿は、Cogbot Advent Calendar 2017 に参加しています。

Azure Machine Learning Workbench で CNTK を利用するための手順を紹介します。

なお現時点で私が使用したのは、Windows 版のバージョン 0.1.1711.15323 です。かなり初期のプレビューですので、今後改善されて、以下の手順を踏まなくても CNTK が利用できるようになるかもしれません。

Azure Machine Learning Workbench (長いので以下では Workbench だけにします) を触り始めると、まずはアヤメの分類(Classifying Iris)をすると思います。QuickStart で取り上げられていますしね。

アヤメの分類では、機械学習のライブラリとして scikit-learn を使用しています。Workbench のインストーラーでは scikit-learn が一緒にダウンロードされているということです。

iristest


それではと CNTK を使おうとすると ImportError が発生します。CNTK はインストールされていないようです。

cntk_error

Workbench は Miniconda を使用しています。(下は Workbench のインストール画面)

aml_installer

pip も一緒にインストールされているので、これを使って CNTK をインストールすればよさそうです。


pip コマンドを実行するためには、コマンドプロンプトを開きたいところです。

Workbench からはメニューの [File] – [Open Command Prompt] で開くことができます。

ここで起動するコマンドプロンプトは、Workbench 用の環境変数やパスがあらかじめ設定された状態になっています。便利です。

open_cmdprompt

念のために、Python のバージョンを確認します。


python -V

現時点では Python は 3.5 系がインストールされています。

Python のバージョンに合わせて CNTK の wheel をインストールします。

CNTK の wheel ファイルのパスは こちらのページ で探してください。Python のバージョンや GPU ありなしで wheel ファイルは異なるので注意。

こちらの記事 も参考にしていただければ)


pip install <wheelファイルのURL>

install_cntk

余談ですが、現時点では「pip のバージョンが古いよ」というメッセージが表示されます。

特に問題はありませんが、気になる人は、


python -m pip install --upgrade pip

を実行するといいでしょう。


これで OK。

試しに Notebook を開いて、”import cntk” してみましょう。先ほどと違ってエラーメッセージは表示されないはず。

なお Workbench の Notebook をローカル PC で実行する場合には、カーネルとして “<プロジェクト名> local” を選択してください。

“Python 3” は選択しないように。Workbench 環境とうまく結合されていないようです。

select_kernel

import_cntk_ok


Workbench の New Project のテンプレートとして、”MNIST using CNTk” があります。

実際にこのプロジェクトを作って確認してみます。

new_cntk_mnist_project

[Files] を開いて、”cntk_mnist.py” を実行してみます。

mnist_run

しばらく待つと Job の状態が “Completed” になるはず。

mnist_completed

実行結果を見ると、学習の内容が分かります。

mnist_runs

Workbench のいいところは、結果を視覚的に確認する仕組みがあらかじめ組み込まれてるところですね。

かつ学習の履歴も保持しているし、学習モデルの管理・発行を DevOps に乗せることができるのもいい点です。

wb_runs_history


ただ、現在のバージョンでは(Preview なので機能的には足りていない部分もあります)、Workbench 内での実行では進捗が分からないこと。

Submitting → Starting → Running → Completed とステータスは変わるのですが、Running 中にどこまで進んだのかわかりません。ちょっと心配になります。

現時点では Workbench 内では実行中の進捗を知るすべはないため、Visual Studio Code を組み合わせて使うのがよさそうです。

Workbench はプロジェクト管理やデータの加工を行う、Visual Studio Code はスクリプトの編集やデバッグ実行という使い分け。

スクリプト表示画面にはちゃんと [Edit] ボタンがあります。これをクリックすると Visual Studio Code が起動します。

(※もちろん事前に Code をインストールしておき、Workbench でも 外部エディター設定 をしておく必要があります)

vscode_from_wb

これでスクリプトの編集もデバッグ実行もできます。実行中の print もちゃんと表示されます。

だったら「Visual Studio Code があればいいじゃないか」という気もしなくもないですが、今後の機能向上を期待して Workbench も使ってみましょう。