第2回 TensorFlow環境の構築:TensorFlow入門(2/2 ページ)
本連載のゴールは「エンジニア向けに、とりあえずTensorFlowを使ってみて、ディープラーニングを体感してみる」こと。実際にTensorFlowを使っていくために、まずは環境構築を行おう。
TensorFlow環境の準備
Minicondaのインストール
下記URLより、OSごとにMinicondaのインストーラーを入手する。本稿ではPython 3.6を選択している。
Windowsの場合は、ダウンロードしたインストーラーの実行ファイルを起動し、それに従ってインストールする。自分のみ利用する場合は管理者権限なしでインストールでき、これを推奨する。インストールすると[Anaconda Prompt]というソフトウェアがスタートメニューに登録される。Anaconda Promptは環境設定済みのコマンドプロンプトだと思ってもらえばよい。従って、Conda利用時の操作はAnaconda Promptを利用すればよい。本稿において、次節以降のコマンド操作はAnaconda Prompt上で行うことを想定している。
macOSやLinuxの場合は、インストーラーはBashスクリプトになっているため、次のようにダウンロードしたスクリプトをbash上で実行すればよい。インストール先はホームディレクトリー以下を選択することで管理者権限が不要になり、これを推奨する。インストール時に対話的にパスの設定を行ってくれる。次節以降のコマンド操作では、この設定を反映するためにBashを再起動するか.bashrcファイルを再読込しておこう。
$ bash ./Miniconda3-latest-Linux-x86_64.sh
仮想環境の作成
Condaではconda createコマンドにより仮想環境を作成できる。ローカル環境で開発を行う場合、さまざまなパッケージの導入によって依存関係が容易に崩れてしまう。これを防ぐために、ローカル環境内でも独立したパッケージ依存関係を保つことができる仮想環境の作成を強く推奨する。
仮想環境を作成するため、次のコマンドを実行する。ここでは例として仮想環境の名前を「introtensorflow」とする。-nオプションにより仮想環境の名前を示す。
$ conda create -n introtensorflow
なお、作成した仮想環境の一覧は、次のコマンドで確認できる。
$ conda info -e
作成した仮想環境下で作業を行える状態にすることをアクティベーションという。作成した「introtensorflow」仮想環境をアクティベーションする(リスト4、リスト5)。
(base) > conda activate introtensorflow
$ source activate introtensorflow
アクティベーションに成功すると、次のようにプロンプトの前に仮想環境名が表示されるようになる。
(introtensorflow) $
仮想環境を終了(ディアクティベーション)する場合には、リスト7/リスト8のコマンドを実行する。ディアクティベーションが成功すれば、プロンプトの前の仮想環境名が表示されなくなる。
(introtensorflow) > conda deactivate
(introtensorflow) $ source deactivate
次節以降は仮想環境上で行うので、ディアクティベーションした仮想環境は、再度、アクティベーションしておくこと。
Jupyter Notebookのインストール
仮想環境にJupyter Notebookをインストールするには、conda installコマンドを用いる。
(introtensorflow) $ conda install jupyter
TensorFlowのインストール
前述の通り、TensorFlowのインストールはconda installではなくpip installが公式に推奨されている。これに従い、pip installコマンドを用いる。CPU版とGPU版でパッケージ名が異なるため、おのおのの環境に合わせて必要なパッケージをインストールする。GPU版は事前設定が必要であることは前述の通りだ。
(introtensorflow) $ pip --no-cache-dir install -I -U tensorflow
(introtensorflow) $ pip --no-cache-dir install -I -U tensorflow-gpu
TensorFlowの動作確認
インタープリターでの確認
まずはTensorFlowが使えることを確認しよう。Pythonのインタープリターを対話モードで起動する。
(introtensorflow) $ python
Python 3.6.4 |Anaconda Inc.| (default, Jan 16 2018, 18:10:19)
[GCC 7.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>
macOSやLinuxではPythonがあらかじめインストールされているため、PythonがMinicondaで導入したPython 3.6であることを確認してほしい。|Anaconda Inc.|という文言が含まれていれば問題ない。もしMinicondaで導入したPythonでない場合は、パスの設定(PATH環境変数)を確認してほしい。
次のコードを入力してエラーが起こらないことを確認する。なお、環境によっては警告などのログが表示されるかもしれないが、内容を読んで問題がなければ先に進めてほしい。最後のコードまで実行できたら対話モードを終了(exit())してよい。
>>> import tensorflow as tf
>>> sess = tf.InteractiveSession()
>>> message = tf.constant('Hello, Tensorflow!')
>>> message.eval()
b'Hello, Tensorflow!'
>>> sess.close()
Jupyter Notebookの起動
Jupyter Notebookの起動は次のコマンドを実行する。
(introtensorflow) $ jupyter notebook
実行すると、しばらくしてブラウザーが起動して、カレントディレクトリのファイル一覧が表示される(図1)。ファイルが存在しない場合は「The notebook list is empty.」と表示される。
もしエラーでもなくブラウザーが起動しない場合や、誤ってタブを閉じてしまった場合は、コンソール上に次のようなログが表示されているので、このURLにアクセスすればよい。
Copy/paste this URL into your browser when you connect for the first time,
to login with a token:
http://localhost:8888/?token=<ハッシュ値>
Jupyter Notebookページ右上の[New]メニュー(図1参照)から「Python 3」を選択すると新規ノートを作成できる。作成すると、以下のように空のノートが表示される。
Jupyter Notebookでは、入力セル(In[n]の形式のラベルが付与される)にコードを記述し、[Run]ボタンをクリック(または[Shift]+[Enter]キーを入力)すると、その入力セルに記述したコードを実行できる。コードが標準入出力を利用する場合は、入力セルの直下に入力フォームや出力結果が表示される。入力セルのコードの最後の式が評価された結果は、出力セル(Out[n]の形式のラベルが付与される)に出力される*2。
*2 n番目の出力セルの値は_nという変数で参照できる。時間がかかる処理をうっかり変数に代入し忘れた場合などに利用するとよいだろう。
入力セルには、Pythonコード以外にも、Markdown形式の文章も挿入できたりする(ノート表示中の[Cell]メニューの[Cell Type]で変更する)。また、各セルは順番を入れ替えたり、修正して再実行できたりするため、まさに試行錯誤を行うのに適した環境であるといえる*3。
*3 試行錯誤を行った結果、変数定義の順番が入れ替わって結果がおかしくなる場合がある。他人にノートを配布したり、コードを再利用したりするような場合は、[Kernel]メニューから[Restart & Run All]を選択して、上から順に再実行するとよいだろう。
図3はJupyter Notebookを用いて先ほどのコードを実行した例だ。
Jupyter Notebookのノートの実体は、拡張子が.ipynbのJSON形式のファイルである。
この形式のファイルに対応したサービスやソフトウェアを用いれば、ユーザーはJupyter Notebookの導入なしにノートをレンダリングして閲覧できる。例えばGitHubはJupyter Notebook形式に対応しているので、ノートファイルをpushすることでユーザーに見やすい形式で公開できる。
また、ノート表示中の[File]メニューの[Download As]を選択するか、コマンドラインでjupyter nbconvertコマンドを実行することにより、Pythonコードに変換したり、HTMLに変換したりできる。
次回からは、今回準備したTensorFlow環境を利用して深層学習を実践していく。前置きが長くなるが、次回はその必須知識として、TensorFlowの基本的な構成要素であるテンソルとセッションについて説明しておく。
【TL;DR】TensorFlow環境の構築
- TensorFlowを利用するための環境: Pythonが動作する環境は必須。機械学習ではJupyter Notebookもインストールすると便利
- OSとGPU: Windows/macOS/Ubuntuで利用可能。CPU版/GPU版を選択可能。ただしmacOSではGPU版はサポートされない
- ローカルのPython環境: TensorFlow 1.5はPython 2.7と3.4以降に対応。本連載では、Minicondaで仮想環境を作成し、pipコマンドでTensorFlowをインストールする
- 上記以外の環境: Dockerを利用する方法や、AWS/GCP/Azureといったパブリッククラウドを利用する方法もある
- Minicondaのインストール: https://conda.io/miniconda.html
- Condaで仮想環境の作成: conda create -n introtensorflow、conda activate introtensorflow(Windows)/source activate introtensorflow(macOS/Linux)
- Jupyter Notebookのインストール: conda install jupyter
- TensorFlowのインストール: pip --no-cache-dir install -I -U tensorflow(CPU版)
- 準備した環境の動作チェック: python、import tensorflow as tf……(※コードなので続きは本文を確認、jupyter notebook
- Jupyter Notebookの機能: 作成したノート上の各In[n]セルでPythonコードが実行でき、直下に表示されるOut[n]セルに結果が出力される。Markdown文書を入力したり、Pythonコードをエクスポートしたりできる
Copyright© Digital Advantage Corp. All Rights Reserved.