2017年6月8日 更新

Azure + Tensorflow + Kerasで画像認識

クラウドでGPUを使ったディープラーニングを実行するための環境構築法をまとめました。

1,781 view お気に入り 0

こちらの記事を参考に日本リージョンに合わせて設定を行います。細かい点が知りたい場合は以下リンクを参照してください。

Azure GPU Tensorflow Step-by-Step Setup

キーワード

まずは今回使う各単語をさっくり端的に説明します。参考リンクを貼って置くので詳しいことを知りたい方はリンク先を参照してください。

GPUとは

CPUと比較して並列処理が得意。もともと画像処理がメインの仕事だったが、大量に計算をする機械学習で活躍する。

Deep learningに必須なハード:GPU

Azureとは

Microsoftが提供するクラウドサービス。仮想環境にサーバを立てることなどができる。

そもそも Microsoft Azure とは?

Tensorflowとは

Googleが開発したディープラーニング用のライブラリ。

ビッグデータを分散学習するDeep LearningライブラリTensorFlowとは

Kerasとは

TensorflowやTheaoなど初心者には手を出しにくいライブラリを簡単に扱えるようにするラッパーライブラリ。

Deep learningで画像認識⑤〜Kerasで畳み込みニューラルネットワーク vol.1〜

MNISTとは

手書き文字の画像データセットで、画像認識を試す際によく使われます。

Deep learningで画像認識⑤〜Kerasで畳み込みニューラルネットワーク vol.1〜

Azure VMでGPUインスタンスを作成

AzureのVirtual Machineを立てます。

GPUを使えるインスタンスは限られているので気をつけましょう。日本では今の所NVシリーズから選ばなくてはいけません。

Nシリーズについては先日NVIDIA, Microsoft主催のローンチイベントに参加して詳しくまとめたので詳しく知りたい方は以下の記事をご確認ください。

Japan Azure NV シリーズ ローンチイベントに参加しました

 (3983)

まずはAzureにログインし、ポータルを開きます。まずはAzureにログインし、ポータルを開きます。
 (3985)

左のメニューバーから「Virtual Machine」を選択します。
するとVMの画面が開かれるので、左上の「追加」ボタンからVMを作成します。
 (3986)

まずはOSを選択します。
「Ubuntu 16.04 LTS」にします。
 (3987)

デプロイモデルは特にいじらず、そのまま「作成」を押します。
 (3989)

名前や認証情報などの必須項目を入力します。
注意点ですが、「VMディスクの種類」はSSDからHDDに変更します。
 (3990)

インスタンスのタイプを決定します。
1つ前の設定で東日本リージョンを選んだ場合はNVシリーズから選択します。

2017年6月現在、NVシリーズには「NV6」、「NV12」、「NV24」の3種類があります。
数字が大きいほどコア、RAMなど性能が高くなりますが、その分利用料も高くなるので用途に合わせて使いましょう。

今回のようにとりあえず使ってみる場合はNV6で十分です。
 (3991)

3、4で内容を確認して「OK」すれば、ポータルのトップ画面に戻りインスタンスの作成が始まります。
しばらく時間がかかるので待ちます。

Tensorflowセットアップ

この間に後ほど使うものを準備します。

NVIDIAのサイトからcuDNNをダウンロードします。

ダウンロードリンクは以下のものですが、まずはメンバー登録する必要があります。リンク先の指示に従ってください。

cuDNN Download

CUDAやcuDNNについては以下のリンクを参照ください。

Deep learningに必須なハード:GPU

 (3993)

「Download cuDNN v5.1 (Jan 20, 2017), for CUDA 8.0」を開き、
「cuDNN v5.1 Library for Linux」をダウンロードします。

ダウンロードが終わる頃にはインスタンスが起ち上がっていると思います。

以降の作業はインスタンスにSSH接続して行います。

Microsoft社員のLee StottさんがGithubに公開しているシェルスクリプトを使います。

Githubからcloneしてきて、まずはpart1を実行します。

ドライバなどのインストールを自動で行ってくれます。

git clone https://github.com/leestott/Azure-GPU-Setup.git
./gpu-setup-part1.sh
part1

gpu-setup/ ディレクトリに先ほどNVIDIAからダウンロードしたcudnn-8.0-linux-x64-v5.1.tgzをscpなりftpなりで置きましょう。

part2を実行します。

32 件

関連する記事 こんな記事も人気です♪

Deep learningで画像認識⑤〜Kerasで畳み込みニューラルネットワーク vol.1〜

Deep learningで画像認識⑤〜Kerasで畳み込みニューラルネットワーク vol.1〜

Kerasと呼ばれるDeep Learingのライブラリを使って、簡単に畳み込みニューラルネットワークを実装してみます。
木田智士 | 7,299 view
Deep learningで画像認識⑩〜Kerasで畳み込みニューラルネットワーク vol.6〜

Deep learningで画像認識⑩〜Kerasで畳み込みニューラルネットワーク vol.6〜

U-Netと呼ばれるU字型の畳み込みニューラルネットワークを用いて、MRI画像から肝臓の領域抽出を行ってみます。
木田智士 | 1,926 view
Deep learningで画像認識⑨〜Kerasで畳み込みニューラルネットワーク vol.5〜

Deep learningで画像認識⑨〜Kerasで畳み込みニューラルネットワーク vol.5〜

U-Netと呼ばれるU字型の畳み込みニューラルネットワークを用いて、MRI画像から肝臓の領域抽出を行ってみます。
木田智士 | 3,368 view
Deep learningで画像認識⑧〜Kerasで畳み込みニューラルネットワーク vol.4〜

Deep learningで画像認識⑧〜Kerasで畳み込みニューラルネットワーク vol.4〜

転移学習と呼ばれる学習済みのモデルを利用する手法を用いて白血球の顕微鏡画像を分類してみます。
木田智士 | 7,851 view
Deep learningで画像認識⑦〜Kerasで畳み込みニューラルネットワーク vol.3〜

Deep learningで画像認識⑦〜Kerasで畳み込みニューラルネットワーク vol.3〜

Kerasと呼ばれるDeep Learingのライブラリを使って、白血球の顕微鏡画像を分類してみます。
木田智士 | 12,334 view

この記事のキーワード

この記事のキュレーター

山田涼太 山田涼太