DIGITAL DIY

  • TOP
  • CATEGORY
    プログラミング
  • TITLE
    前回までで、ディープラーニングについて基本的なことは一通り説明しました。今回は、いよいよWindows&AMD製GPUでディープラーニングを行うための環境を実際に構築していきます!
CATEGORY
プログラミング

前回までで、ディープラーニングについて基本的なことは一通り説明しました。今回は、いよいよWindows&AMD製GPUでディープラーニングを行うための環境を実際に構築していきます!

前回の記事がこちら!

■ Anacondaのインストール

まずはPythonでプログラミングを行うための環境を構築しましょう。Python言語自体はPythonの公式ページからインストールすることができますが、機械学習やデータ分析を行うためにはその他にも様々なライブラリ(拡張ツールのようなもの)が必要です。今回は、そういった機械学習やデータサイエンスに必要なライブラリをセットにしたAnacondaと呼ばれるディストリビューションをインストールすることにします。

 

以下のAnacondaの公式ページにアクセスしてください。

https://www.anaconda.com/download/#macos

Windowsが選択されている(黒字になっています)ことを確認してから、左側のPython 3.7 versionのDownloadをクリックしましょう。

するとAnacondaのインストーラーがダウンロードされますので、完了したら実行してください。基本的に「はい」をクリックし続ければ正常にインストールが完了します。

 

無事インストールが完了したら、次に環境変数の設定を行います。少し難しいので詳細は割愛しますが、この後のPlaidMLというインストールで使うコマンドプロンプトというアプリケーションで今インストールしたanacondaを使うために必要になってきます。

デスクトップの左下の検索窓に「環境」と入力すると「環境変数」という予測候補が出るのでそれをクリックすると、下のようなウィンドウが開きます。

digitaldiy02の部分は今ログインしているPCのユーザー名で表示されているかと思います。このうち、「(ユーザー名)のユーザー環境変数(U)」のPathを選択して、右下の編集をクリック。すると「環境変数名の編集」というウィンドウが開くので、「新規」をクリックして以下の2つを追加してください。

C:\Users\(ユーザー名)\Anaconda3

C:\Users\(ユーザー名)\Anaconda3\Scripts

 

(ユーザー名)の部分は自分がいまログインしているユーザー名に置き換えてください。下のスクリーンショットではdigitaldiy02になっています。

 

終わったらOKをクリックして環境変数のウィンドウは閉じてしまいましょう。これで、コマンドプロンプトからanacondaを使えるようになりました。

 

PlaidMLとは

さて、このままでも一応簡単なディープラーニングは行うことが可能ですが、特に外付けのGPUをつけていない場合、その計算資源はCPUからまかなうことになります。CPUはGPUに比べると本格的なディープラーニングを行うには十分なパワーを発揮できませんし、前回の記事でも触れたとおり、メジャーなディープラーニング用フレームワークはNVIDIA製のGPUにしか実質対応していません。

 

CPUとは?GPUとは?という人はこちらを確認!

 

ただ、もしNVIDIA製のGPUではないけど他社製(AMDなど)のGPUなら備えているよ、ということであれば、せっかくならそれをディープラーニング用に使いたいですよね。今回はそんな夢を叶える素敵なフレームワーク、PlaidMLをインストールすることで、あなたのGPUをディープラーニング対応GPUに変身させてあげましょう!

PlaidMLのインストール

先程も使ったデスクトップの検索窓から「コマンドプロンプト」と検索して、予測候補に出た「コマンドプロンプト」を選択して起動しましょう。

うっ、何だこの黒い画面は……とアレルギー反応を示された方もいることでしょう。大丈夫です、大したことはやりませんので、ここに書いてあるとおりに進めていけば簡単です。

まずは、

C:\Users\(ユーザー名)\conda create -n plaidml python=3.5 anaconda

 

と入力してenterを押します。condaはanacondaのコマンドを実行するためのもので、先ほどの環境変数の追加はこれを使えるために行ったのでした。

このコマンドでは、「plaidml」という名前でanacondaの仮想環境(用途に応じていくつかの環境を別々に作っておくことで、それぞれの環境に必要なパッケージだけを入れておくことを可能にするもの)を新規に作成しています。今回は、pythonのバージョンは3.5で指定して、anacondaオプションをつけることでanacondaに入っているパッケージを全部入れています。

これらのパッケージを全部インストールしていいかyesかnoで聞かれるので、yと入力してenter。

インストールは数分かかります。しばらく待ちましょう。

パッケージのインストールが完了して仮想環境を構築し終えたら、その環境をアクティベートします。これで、plaidml環境に入ったことになります。


activate plaidml

この状態で、次のコマンドでPlaidMLをインストールします。

pip install plaidml-keras

続けて次のコマンドでPlaidMLのセットアップを行います。

plaidml-setup

まずは

Enable experimental device support? (y,n)[n]:

 と聞かれるのでyを入力してenterを押します。

次が重要です。PlaidMLでディープラーニング用に使用するデバイス(CPUやGPU)を選択します。

 Default device?

 と聞かれるので、選択肢の番号の中から使いたいものを選びます。今回の例では、1.のopencl_amd_gfx804.0(AMD製のGPU)を選択しますが、ここは皆さんがお使いのGPUを選択してください!

Enabletelemetry reporting? (y,n)[n]:

と聞かれるので、yを入力してenter。

 

最後に

Save setting to C:\Users\(ユーザー名)\plaidml?

と変更を保存するか聞かれるので、yを入力してenter。

以上で、ディープラーニング用に自分のPCのGPUを使えるようになりました!

 

サンプルプログラムで動作確認

では、AnacondaやPlaidMLの環境がしっかり構築できたかどうか、サンプルプログラムを動かして確認してみましょう!

さきほどのコマンドプロンプトを開いている方はそのままで、もし閉じてしまった方はactivate plaidmlをしてplaidml環境に入ってから、

jupyter-notebook

でJupyter-Notebookを起動します。Jupyter-Notebookはノートブックと呼ばれるファイル上で、Pythonのコードや実行結果をまとめて管理できる大変便利なツールです。詳しい使い方については今回は割愛します!

コマンドプロンプトを起動した時点でのディレクトリ(フォルダやファイルがある場所)が表示されていると思います。適切なフォルダ(ドキュメント)などを開いて、そこで右上の「New」をクリック、Notebookの中のPython[conda root]をクリックします(もし[conda root]と表示されているものがなければ、他のものでも構いません)。

すると新規タブが開いて新しいノートブックが作成されるので、最初のセルにコードを打ち込みます。

今回は、GitHubで公開されているこちらのコードを使いましょう。

 

https://github.com/keras-team/keras/blob/master/examples/mnist_cnn.py

 

こちらのコードではフレームワークとしてKerasが使用されています。これを打ち込むかコピペして、Shift + Enterで実行(もしくは上のツールバーに表示されているRunをクリックしましょう)すると、学習が始まります。

ちなみに編集部で試したところ、学習自体は(GPUのパワーで)すぐ終わったのですが、学習データのダウンロード自体に時間がかかりました。

学習が終わったら実行結果として次のような画面が表示されているかと思います。注目すべきは赤枠で囲んだ部分です。

おお、使えてる!

ちゃんと、

Using plaidml.keras.backend backend.

INFO:plaidml:Opening device “opencl_amd_gfx804.0”

 

と表示されており、バックエンドでPlaidMLが、そして計算資源としてopencl_amd_gfx804.0(NUCに搭載されているAMD製GPUです)が使われていることが確認できます!感動!

 

まとめ

以上で、Windowsと他社製GPUのある環境でディープラーニングを行うための環境作りが一通り終了しました。ぜひお試しあれ!


BACK TO LIST