本連載のゴールは「エンジニア向けに、とりあえずTensorFlowを使ってみて、ディープラーニングを体感してみる」こと。実際にTensorFlowを使っていくために、まずは環境構築を行おう。
ご注意:本記事は、@IT/Deep Insider編集部(デジタルアドバンテージ社)が「deepinsider.jp」というサイトから、内容を改変することなく、そのまま「@IT」へと転載したものです。このため用字用語の統一ルールなどは@ITのそれとは一致しません。あらかじめご了承ください。
TensorFlowはPythonパッケージとして提供されるため、基本的にはPythonが動作する環境であればインストールして利用可能である。機械学習では試行の繰り返しが必要不可欠であることから、データサイエンティストはJupyter Notebookを好んで利用するようだ。本稿では、TensorFlowをJupyter Notebookで利用できることをゴールとして説明する*1。
*1 Jupyter Notebookの機能を含むJupyterLabという統合開発環境(IDE)も存在する。
本稿では、以下のOSについて動作確認を行っている。
TensorFlowを利用する際に、CPUのみで実行するか、GPUも利用するかを検討する必要がある。TensorFlowはCPUのみを利用するバージョン(CPU版)と、GPUを利用するバージョン(GPU版)が用意されている。多くの場合、GPUを利用したほうが高いパフォーマンスを得られるため、GPUが利用できる環境であれば、GPU版を選択するとよいだろう。なお、TensorFlowのGPU版はmacOSをサポートしない。
GPUを有効化するためには、事前にCUDA ToolkitやcuDNNなどGPU関連のソフトウェアのインストールや環境変数の設定が必要になる。本稿ではGPUの詳細な設定は割愛するため、GPU版の事前設定は「UbuntuでのGPUディープラーニング環境の構築【Ubuntu 16.04 LTS対応】」および公式ドキュメントを参考にしてほしい。
最初に述べたように、TensorFlowはPythonのパッケージとして提供される。本稿執筆時点の最新版であるTensorFlow 1.5がサポートするPythonのバージョンは、Python 2.7およびPython 3.4以降だ。
Pythonにおけるパッケージのインストールや設定に関しては、OSによる多少の違いはあるかもしれないが、基本的にはpipコマンドを利用すれば導入できる。
PythonユーザーにはCondaを好んで利用する方も多いだろう。Condaの場合はパッケージ管理にcondaコマンドを使う場合もあるが、TensorFlowの公式サイトではConda環境下でもpipコマンドの利用を推奨している。
本連載では、軽量なCondaであるMinicondaを利用して仮想環境を作成し、pipコマンドでTensorFlowをインストールするというフローで説明する。本稿で構築する環境は次の通り。
ソフトウェア | バージョン |
---|---|
Python | 3.6(Miniconda) |
TensorFlow | 1.5 |
表1 本連載で使用するPythonとTensorFlowのバージョン |
TensorFlowをローカルのPython環境にインストールする以外の選択肢として、以下を簡単に紹介しておく。
Docker
TensorFlowを実行する環境として、Dockerイメージを利用するという方法もある。Dockerとは、軽量なコンテナー型のアプリケーションの仮想実行環境である。なお、Windowsの場合はDockerを利用するためにHyper-Vの有効化が必要になるため、エディションによっては利用できないことに注意が必要だ。
TensorFlowはCPU版とGPU版それぞれでDockerイメージを公式に公開している(gcr.io/tensorflow/tensorflowのタグを参照)。このイメージにはあらかじめTensorFlowに加えてJupyter Notebookもインストールされているため、Dockerが利用できる環境であれば、これを利用することで容易にTensorFlowの実行環境が手に入る。なお、GPU版についてはnvidia-dockerと呼ばれるGPUを有効にするためのDockerのランタイムを利用する必要がある。詳細は、TensorFlowの公式ドキュメントを参照してほしい。
パブリッククラウドのサービス
Amazon Web Services(AWS)、Google Cloud Platform(GCP)、Microsoft Azure(Azure)といった著名なパブリッククラウドでも機械学習を実施しやすいようなクラウドサービスが提供されている。次の表に示したサービスを用いることで、Jupyter Notebookを利用して実験を行い、作成したモデルを公開できる。
クラウド | サービス | Jupyter Notebook | TensorFlow | モデルの 公開 |
備考 |
---|---|---|---|---|---|
AWS | Amazon SageMaker |
○ | ○ | ○ | |
GCP | Google Cloud Datalab |
○ | ○ | − | |
GCP | Google Cloud ML Engine |
− | ○ | ○ | |
Azure | Azure Machine Learning Services |
○ | ○ | ○ | Jupyter NotebookはAzure Machine Learning Workbenchという開発環境でも提供される。データサイエンス仮想マシン(DSVM)にTensorFlowが導入済みですぐに利用できる |
Azure | Azure Machine Learning Studio |
○ | △ | ○ | TensorFlowの導入は自身で行う必要があるが容易ではない。Azure環境で自由に機械学習の開発を行いたい場合は、上記のAzure Machine Learning Servicesを選択する方がよい |
表2 各クラウドサービスとツールの対応環境 |
Copyright© Digital Advantage Corp. All Rights Reserved.