RISSこのコンテンツはJavaScriptに最適化されています。JavaScriptが無効になっている場合は、有効にしてください。Learningを行うための環境構築の方法を説明させていただきます。Learningの活用が盛んに行われるようになってきました。Syste)のデータを解析する際にAIを用いた解析を試みています。Learning開発環境としてはOSとしてUbuntuが稼働しているPCを用いるのが一般的です。AI自体を本格的に活用する場合であれば、Ubuntuが稼働する専用マシンを購入して使用することもできますが、将来の研究への活用などを踏まえて少し試すために新たに専用マシンを購入し、慣れない設定を行うことはAI活用の阻害要因となります。昔とは違い最近では研究者や大学院生であってもLinux系OSの操作に慣れていない方も増えてきており、不慣れなOSで不適切な設定を行うことでセキュリティ上のリスクを生じさせることも懸念されます。AIはそのアルゴリズム自体の発展と併せて、社会の中で活用され、社会的に意義のある問題解決に資することが重要です。開発環境のOSの種類は、研究遂行上は本質的な問題ではありません。AI活用が広く行われるようになればなるほど、この問題が大きなものとなっているように感じます。10マシン上でAI開発を行える環境構築の手順についてできるかぎり図を交えて、その通りにやれば動く、というレベルで書かせていただくことにしました。Learningを行うための環境構築展順を示します。下で説明させていただく流れは、1つの例であり、実際にはコマンドを多用することやバッチファイルを作成することなどでより簡単に環境構築をすることができる方法もあります。Learningなどの入門書を読み、実際に自分のPC上で環境を構築してプログラムを動かしたいという方を想定しています。LearningのアルゴリズムやAIの仕組みなどについての説明は行いません。GPUを利用することの必要性などもあまり深く追求しません。Learningを実行する場合、一般にGPUによって計算を行います。CPUのみでも開発は可能ですが、速度が遅く現実的な開発を行うことは困難です。手元で確認した限りで単純なサンプルで速度が約20倍異なりました。GPUを搭載したマシンであれば1分で終わる計算をCPUだけで行うと20分以上かかります。1回限りの動作であれば20分程度は問題になりませんが、実際のAI開発ではハイパーパラメーターチューニングしながら何度も計算を繰り返します。1分で終わるような軽量な計算は希でGPUを使って1時間、1日単位で計算をすることもしばしばあります。GPUを使った演算であれば週末2日で結果が得られる計算であっても、CPUだけで計算を行おうとすると計算に1ヶ月以上かかってしまうことになります。GPUは決して安いものではありませんが、AI開発を行うためには必須のものと考えるべきです。必要なPCの準備このコラムではWindows10(最新パッチ適用済)でKeras+TensorFlow開発環境を構築することを目的としています。PCは最新パッチの適用されたWindows10を用います。PCはNVIDA製のCUDAコア搭載GPUが搭載されているPCを想定します。1060が搭載されたグラフィックカードでも試験的な利用には十分です。1080Tiが良いかと思います(2018年8月時点)。Learningの開発にはPythonを用います。PythonにはPython2系と3系がありますが、ここではPython3系を用います。Learningのサンプルを動かす際などにはPython2系のコードも多くあるので本格的にプログラムを書くようになった場合はPythonのバージョンを切り替えて使うことが多いかと思います。2017は学術研究を目的とした利用については無償で利用可能です。企業で利用する場合は有償のProfessional版が必要になりますのでご注意ください。詳しくはライセンス規約をご確認ください。2017をダウンロードします。リンクをクリックし、下の図のCommunity2017をクリックしてダウンロードしてください。ダウンロードしたファイルをダブルクリックすると、下の様な画面が出てきますので「続行」をクリックします。Studioのインストーラーが立ち上がります。インストーラー上に表示されている「Python開発」にチェックを入れます。画面右側に下の図のような「インストールの詳細」が表示されます。64ビット」にもチェックを入れてください。Anacondaが既にインストールされている場合はチェックを入れる必要はありません。選択が終わったら画面右下の「インストール」をクリックしてインストールを開始します。インストールが完了すると下のようにサインイン画面が表示されます。マイクロソフトアカウントを持っていない場合はアカウントを作成してからサインインしてください。Studioが立ち上がります。試しに、ファイル→プロジェクト→新規作成を選択し、新しいプロジェクト画面で「Pythonアプリケーション」を選択し、OKをクリックしてください。ファイル上にPythonのコードを書いて「アタッチ」をクリックしてみます。以下ではx=1,y=2として、x+yの結果を画面に表示させます。下のようにコマンドプロンプトが立ち上がり実行結果が表示されます。これでPythonの開発がWindows上で行えるようになりました。ここからAI開発に必要なツールをインストールしていきます。Studioを終了させます。GPUドライバーのインストールNVIDIAのサイトからご自身が使用しているGPUの最新ドライバーをインストールします。ダウンロードしたドライバーをダウブルクリックし、下のドライバーインストール画面を立ち上げます。次に「カスタム(詳細)」インストールを選択します。次に進み「クリーンインストールの実行」を選びます。GPUでオリジナル設定をしている場合、設定が全て規定値に戻ってしまうので注意してください。このクリーンインストールオプションは念のために行うもので必須ではありません。これまでに複数の環境構築をしてきた経験から、一部GPUカードのメーカーオリジナルドライバーがインストールされた環境ではこのオプションを選択しないとこれ以降の設定がうまく行かない事例がありました。次に進み、これ以降は全てデフォルトでドライバーのインストールまで完了させます。CUDAツールキットのインストール(重要)CUDAツールキットをダウンロードします。CUDAツールキットはこちらのリンクからダウンロードできます。9.2をダウンロードしてインストールします。順に選択していきます。使用許諾契約書の内容を確認し、次に進みここでは「高速(推奨)」のまま次に進みます。インストールが開始してしばらくしてから、下の確認画面が出てきた場合は「インストール」を選択します。インストール完了までいくつかの確認が出てくることがありますが、全て「次へ」で進みます。上記画面で「閉じる」を押してCUDAツールキットのインストールを完了させます。Learning用のライブラリであるcuDNNをインストールします。cuDNNをダウンロードするにはこちらのページから登録を行う必要があります。now」からアカウントを作成してログインしてください。cuDNNはこちらのページからダウンロードできます。cuDNNのダウンロードが終了したら、圧縮ファイルを開き、cudaフォルダ内の内容を確認します。bin,include,libの3つのフォルダがありますので、これを先ほどのCUDAツールキットをインストールしたフォルダーにコピーします。Toolkit\CUDA\v9.2にインストールされています。管理者権限を求められるので「続行」を選択します。以上でcuDNNのインストールが完了しました。環境変数の設定Windows上で以下の3つのフォルダに対してパスを通します。Studio\Shared\Anaconda3_64\Scriptsパスを通すには、Windowsスタートメニューから「環境変数の編集」を選択します。環境変数の編集画面で「Path」を選択肢「編集」をクリックします。「新規」をクリックしフォームに先ほどのCUDAツールキットがインストールされたフォルダ内の「bin」フォルダを登録します。Toolkit\CUDA\v9.2\bin」2です。続いてAnacondaにもパスを通します。ご自身でAnacondaをインストールしてある場合は、Anacondaのインストールパスに変更してください。全てのウィンドウをOKで閉じて環境変数の編集を終了します。環境変数の設定が終わったら一旦Windowsからサインアウトして環境変数を適用させます。Studioインストール時に同時にインストールしたAnacondaを起動します。Anaconda上への仮想環境の追加Anaconda上に仮想環境を作成します。Anacondaを立ち上げて左側「Environment」を選択し、下に出てくる「Create」をクリックします仮想環境の名称を入力し、Createをクリックすれば仮想環境ができます。仮想環境の名前は任意に付けられますが、ここでは「deeplearning」としました。これ以降は設定した仮想環境上で操作を行います。Studioを起動し、ツールバー上の「ツール」→「拡張機能と更新プログラム」を選択します。AI」と入力して検索をします。AIが表示冷ますのでこれをダウンロードします。下の画像のようにVSIXインストーラーが自動的に起動します。途中で管理者権限を求められますのでそのまま実行してください。下のウィンドウが出てきた場合もライセンス条項に同意して変更をクリックして進めます。下のウィンドウになれば、インストールは完了です。仮想環境からターミナルを起動Anacondaを起動し、作成済みの仮想環境のターミナルを起動します。Teminal」をクリックします。スタートメニューからコマンドプロンプトを選択し、右クリックで「管理者として実行」します。下のように(deeplearning)という仮想環境名が記載されたコマンドプロンプトが起動します。立ち上げたコマンドプロンプトに下の1~7のコマンドを順番に入れて、1行ずつ実行し下さい。keras-gpu==2.1.6途中で下のように「Proceed([y]/n)?」となって実行が一時停止するので、この場合は「y」と入力して実行を進めてください。上記は環境構築の一例です。tensorflowなどのバージョンは書籍で示されていると思いますので、その書籍のバージョンに併せて適宜変更してください。インストールの順序は基本的に変更しないことをお勧めします。keras-gpu==2.1.6」とあります。keras」のような記述を多くみかけます。どちらの方法を使ってインストールしても問題はないのですが、慣れてくると好みや状況によって使い分ければよいのですが、やや乱暴ではありますが通常はcondaでインストールし、condaでインストールできない場合のみpipを使うという使い分けで問題ありません。keras-gpu==2.1.6」というように==以下にそれぞれのパッケージのバージョンを指定しています。Pythonのライブラリはパッケージ間の依存関係があり、A,Bという2つのパッケージがあるとき、パッケージBはパッケージAに依存するというケースが多くあります。このときパッケージBはパッケージAのバージョン1.0では動くけれど、パッケージAのバージョン1.1を使ってしまうと動かないということがしばしば起こります。そのため、適切なバージョンをインストールすることが重要です。バージョンの選択は書籍などに示されている場合はそれを使い、それでもうまく行かない場合はエラーメッセージから判断します。慣れるまではつまづきやすい部分となります。コマンドの実行順序コマンドの実行順序も影響します。condaを使うことでインストールするパッケージに必要なパッケージが自動的にインストールされるのですが、インストール順序が異なるとそれぞれのパッケージが使用している他のパッケージのバージョンが異なってしまい、不整合を起こしてしまうことがあります。実際にエラーとなる例を示します。エラーが発生すると修正が複雑になるので、deeplearning_errorという実行環境とは別の仮想環境を作ります。仮想環境は後で削除してください。先ほどのコマンドのうち、keras,tensorflowのインストール順序を逆にして実行します。tensorflow-gpu==1.8.0途中で大量のエラーが出力され、正常にインストールが行えなくなります。エラーでストップはしませんので、そのままインストールを進めることはできます。実際にkerasを使ってプログラムをしても下のようにプログラムを動作させることができません。このようなエラーが発生した原因は、keras-gpuをインストールする際に、GPUなしのtensowflowとtensorflow-gpuの2つのパッケージがインストールされていました。それぞれのバージョンは1.1.10となっていました。tensorflow-gpu==1.8.0」を実行したことによって、tensowflow-gpuのみバージョンが1.8.0にしようとしたことでパッケージのバージョンに不整合が発生し多数のエラーが生じてしまいました。このように実行順序を1つ間違えると環境構築に失敗してしまうのも環境構築を難しくしている一因と思います。Pythonの操作に慣れていないうちは、パッケージの整合性でつまずくことが多いため、もしもPythonプログラムがパッケージのimport段階でストップしてしまうようなケースでは、パッケージのバージョンとインストールの順序を見直してみることで問題が解決することがあります。Anacondaの仮想環境を構築しておくことで何度でもやり直しができるので、慣れるまでは仮想環境を作って試行錯誤していくことが必要です。慣れるまでは書籍などを参考にされることが多いと思います。書籍に書かれた順番通りにインストールを行っていたかを見直してみると問題が解決することも多いです。Studioを起動し、最初に作成したPythonプロジェクトを開きます。作成していない場合は任意のPythonプロジェクトを作成してください。プロジェクトを開いて右側のソリューションエクスプローラー上にある作成したプロジェクト、ここでは「PythonApplication1」を右クリックします。右クリックで表示された「Python環境を追加/削除」を選択します。先ほどAnacondaで作成した仮想環境が表示されますのでチェックを入れてOKをクリックします。Studioのpythonから使用可能になりました。以上でAI開発のための開発環境の構築が完了しました。実際にサンプルを動作させるMNISTを使った文字認識MNISTとは下のように手書きで0-9までの数字が書かれた7万枚の画像とその画像がどの数字を表すかを示したテキストファイルのデータセットです。Learningを使って、手書き文字がどの数字であるかを分類するコードを実行します。ここではGit上で公開されているMNISTのサンプルコードを実行します。Studioのpythonファイルに貼り付けます。続いてツールバー上にある「アタッチ」をクリックするとコマンドプロンプトが立ち上がりプログラムの実行が開始します。コマンドプロンプト上に表示される内容の意味などについては参考書籍をご確認ください。初回実行時のみMNISTのファイルをダウンロードするためやや時間がかかります。学習が開始すると下のような画面が進んでいきます。最終的に下の文字が表示されれば学習は完了です。学習に用いなかった1万枚の画像で学習結果をテストし、その正解率が98.12%であったことを示してます。おわりに新しい環境構築をする以上でWindows環境でAI開発を行う環境構築は完了しました。あとは書籍などのコードを手元のPCでプログラムして実行することが可能です。上記で作成した環境はAI開発のための1つの例に過ぎません。Network)を行うための環境ではkeras2.1.2でないと動作しないなどということが頻発します。市販されている書籍の多くでも章によって求められる環境が異なるということもあります。Anacondaでは下の図の赤枠にあるCloneを使って仮想環境をコピーすることができます。試行錯誤が必要になった場合には、きちんと動作している仮想環境上で試行錯誤するのではなく、現在動いている仮想環境をコピーして、コピー先で試行錯誤を行って、うまく行く方法が見つかったらベースに反映させるという方法をお勧めします。ある用途で用いるための仮想環境は独立して準備しておくことで適宜仮想環境を切り替えながらAI開発を行えます。Ubuntu上での環境構築については多くの情報がありますが、Windows10上での環境構築についての情報は少なかったためコラムでご紹介させていただきました。