開発環境において、特に複数のディープラーニング用ライブラリを使い分けたいという場合、Pythonバージョンが異なる複数の仮想環境を使い分ける手段があると便利になる。この用途のツールには、Virtualenvがあり、TensorFlowのインストールガイドでも利用が推奨されている。
しかしデータサイエンスの分野では、AnacondaというPythonディストリビューションパッケージも人気があり、よく使われている。Anacondaは、データサイエンスでよく使われるPythonライブラリ(NumPyやSciPyなど)を簡単にインストール&バージョン管理できるツールが同梱されており、かつPython仮想環境の切り替えも可能である。
Anacondaの仮想環境にインストールできるのは、Anacondaで用意されているパッケージだけではない。一般的なPythonパッケージ管理ツールであるpipを使っても各種パッケージのインストールが可能だ。なお、pipコマンドを使ってインストールした場合、Anacondaのライブラリ管理機能は当然ながら使えないので注意してほしい。逆に、Anacondaのライブラリ管理機能を使いたくない場合は、pipコマンドを使ってインストールする必要がある。例えばTensorFlowなどのディープラーニング用ライブラリは、pipコマンドを使って、Anacondaで作った仮想環境上にインストールしていくことが推奨されている。
この他、AnacondaにはJupyter Notebookも含まれているなど、データサイエンスの作業をするためのほとんどの機能が入っているので、ディープラーニングをこれから始める人にはお勧めだ。本稿でもこれを用いる。
ちなみに、nvidia-dockerをインストールしたのであれば、Python仮想環境は使わずに、Dockerコンテナーごと切り替えてもよい。ただし、Anacondaによる簡単なPythonライブラリ導入の機能も捨てがたいので、取りあえずDockerコンテナー上にAnacondaはインストールして、その仮想環境は使わずに、パッケージ管理機能だけを活用するという手段を採用するのがよりよいだろう。
以上、いくつかのPython環境の構築方法があるので、以下にその使い分け指針をまとめておこう。
それではAnacondaのインストール方法を紹介しよう。※なお本稿では、環境の重さは考慮せず、フルに機能がそろった環境を構築することを目指している。一方で、本以外の本Tutorシリーズでは、より軽量なバージョンであるMinicondaを使って解説している。そのインストール方法は、各連載の中で紹介するので、Minicondaを使いたい場合はこの手順はスキップしてよい。
Anacondaのインストールも厳密には公式のインストールガイドを参照してほしい。ここでは参考までにどのような手順でインストールしたのかを、以下に示しておこう。
まずはAnacondaのLinux用インストーラー(本稿の例ではAnaconda3-5.1.0-Linux-x86_64.sh)をダウンロードする。これには、Anaconda for Linux Downloadsで、[Python 3.6 version](Python 3系のAnaconda: 以下、Anaconda3)枠にある[64-Bit (x86) Installer (525 MB)]リンクを右クリックしてリンクのアドレスをコピーする(図8)。なお、[Python 2.7 version](Python 2系のAnaconda: 以下、Anaconda2)も選択できるが、特別な理由がなければPython 3系をインストールしておけばよい(※執筆時点で、3系が最新のPython環境である)。
取得したダウンロードリンクを使って、リスト3.1のコマンドを実行した(※当然ながら、wgetに指定するダウンロードリンクは、各自でコピーしたものに差し替える必要がある)。
$ wget https://repo.continuum.io/archive/Anaconda3-5.1.0-Linux-x86_64.sh
このコマンド例ではAnaconda3-5.1.0-Linux-x86_64.shという名前のファイル(=Linux用のシェルスクリプトで、通常は.shという拡張子がつく)がダウンロードされる。念のため、ファイルが壊れていないかをチェックサムで確認しておくとよい。そのためのコマンドはリスト3.2のようになる。
$ md5sum Anaconda3-5.1.0-Linux-x86_64.sh
966406059cf7ed89cc82eb475ba506e5 Anaconda3-5.1.0-Linux-x86_64.sh
966406059cf7ed89cc82eb475ba506e5がチェックサムの値になるが、こちらのリンク先でファイルに対する正常なチェックサム値を参照して、両者が一致するか確認すればよい。
それでは、ダウンロードしたシェルスクリプトを使ってAnacondaをインストールしよう。リスト3.3のようにコマンドを実行する。
$ bash Anaconda3-5.1.0-Linux-x86_64.sh
インストーラーの実行内容は、リスト3.4に掲載した。ポイントを簡単に紹介しておこう。
$ bash Anaconda3-5.1.0-Linux-x86_64.sh
Welcome to Anaconda3 5.1.0
In order to continue the installation process, please review the license
agreement.
Please, press ENTER to continue
>>>
===================================
Anaconda End User License Agreement
===================================
……ライセンス内容……
Do you accept the license terms? [yes|no]
[no] >>> yes
Anaconda3 will now be installed into this location:
/home/user-name/anaconda3
- Press ENTER to confirm the location
- Press CTRL-C to abort the installation
- Or specify a different location below
[/home/user-name/anaconda3] >>>
……インストールが実行される……
Do you wish the installer to prepend the Anaconda3 install location
to PATH in your /home/user-name/.bashrc ? [yes|no]
[no] >>> yes
……環境変数PATHにAnacondaのパス設定が追加される……
Thank you for installing Anaconda3!
……ここでインストールは完了……
===========================================================================
……続けて、Anaconda がMicrosoft Visual Stduio Codeのパートナーであることの説明があり……
Do you wish to proceed with the installation of Microsoft VSCode? [yes|no]
>>> yes
……Visual Studio Codeのインストールが実行される……
$ # 最後にBashの実行コマンド(runcom)を読み込み直す
$ source ~/.bashrc
インストールが終わったら、デスクトップ画面を開いてターミナルを立ち上げ、リスト3.5のコマンドを実行してみよう(※SSHでリモートからインストールしている場合やGUIを使わない場合は、この手順はスキップして、次に説明するコマンド操作を実行してほしい)。
$ anaconda-navigator
図10に示すAnaconda Navigatorというウィンドウが表示されるはずだ。ここにJupyter Notebookも含まれていることが分かる。
左側のメニューから[Environments]タブを選択すると、右側に各種ライブラリの一覧が表示され、ここでライブラリバージョンの管理が可能だ(図11)。また、中央の部分はPython仮想環境(前述)を作成したり選択したりする場所となっている。
この仮想環境はもちろん、GUIだけでなく、コマンドで操作することもできる(リスト3.6を参照)。
$ # 「tensorflow17」という名前の仮想環境を作成する。Pythonのバージョンは3.5で、numpy/scipy/pandas/jupyterというライブラリを最初からインストールしている
$ conda create -n tensorflow17 python=3.5 numpy scipy pandas jupyter
$ # 後から追加ライブラリ(この例ではmatplotlib/pillow)をインストールするには以下のようにする
$ conda install -n tensorflow17 matplotlib pillow
$ # 仮想環境「tensorflow17」の一覧を表示
$ conda env list
# conda environments:
#
tensorflow17 /home/user-name/anaconda3/envs/tensorflow17
root * /home/user-name/anaconda3
$ # 仮想環境「tensorflow17」を利用開始する
$ source activate tensorflow17
$ # 仮想環境「tensorflow17」上で各種コマンドが実行できる
(tensorflow17)$ python --version
Python 3.5.5 :: Anaconda, Inc.
$ # 仮想環境「tensorflow17」を利用終了する
$ source deactivate
$ # 仮想環境「tensorflow17」を削除する
$ conda remove -n tensorflow17 --all
ライブラリバージョンのアップデートについても、コマンド操作が可能だ(リスト3.7を参照)。
$ # 個別のライブラリ(この例ではnumpy)」を最新にアップデートする
$ conda update numpy
$ # 全てのライブラリを最新にアップデートする
$ conda update --all
$ # 仮想環境を利用開始して、その仮想環境上でライブラリを全てアップデートする
$ source activate tensorflow17
(tensorflow17)$ conda update --all
以上、必要最小限の使い方だけを紹介したが、機会があれば別記事でAnacondaを使う方法をより詳しく説明したい。
PyCharmは、Python開発者の間で人気のある、JetBrains社製の統合開発環境(IDE)だ。Jupyter Notebookによる開発にも対応しており、データサイエンスやディープラーニング開発にも役立つので、ここでインストールして試してみるとよいだろう。
PyCharmには、有償のProfessional版と無償のCommunity版がある。執筆時点ではCommunity版でも商用利用可能となっているので、まずはCommunity版から使い始めてみることをお勧めする。
インストールするには、まず、デスクトップ画面を開いてブラウザーを立ち上げ、下記リンク先から圧縮ファイル(.tar.gzファイル)をダウンロードして、任意の場所(本稿の例では/home/user-name/pycharm-community/)に展開する。
デスクトップ画面上のターミナルからリスト3.8のコマンドを実行すると、図12のようにPyCharmが起動する。
$ cd /home/user-name/pycharm-community/
$ bash bin/pycharm.sh
PyCharmは本格的に開発したい場合に役立つが、もっと手軽にPythonコードを修正したいなどのニーズも多く発生するのではないだろうか。そういった場合は、Pythonなどのプログラミングコードに対応したテキストエディター(=コードエディター)が便利だ。コードエディターと言えば、Visual Studio Codeが最もお勧めである。
Visual Studio Codeは、ここまでに何度か登場している.debファイル、つまりインストーラーパッケージとして提供されているので、インストールは簡単だ。
デスクトップ画面を開いてブラウザーを立ち上げ、上記リンク先から.debファイルをダウンロードして、ダブルクリックするなどして実行すればインストールできる。
インストールが完了したら、[アプリケーション]メニューの[開発]−[Visual Studio Code]を実行すれば、Visual Studio Codeが起動する。図13は実際に起動したところ。
注意点として、本稿で紹介したX2Go経由だとVisual Studio Codeを起動できない問題があった。これを回避するには、リスト3.9のコマンドを実行してほしい。
$ sudo sed -i 's/BIG-REQUESTS/_IG-REQUESTS/' /usr/lib/x86_64-linux-gnu/libxcb.so.1
かなり長い記事になってしまったので、インストール作業はこれで最後としよう。他にもインストールをお勧めしたいソフトウェアはいくつかあるのだが、これから先は読者自身が必要に応じて探していただければと思う。
本稿が皆さんのこれからのディープラーニングの実践に役立てばうれしい。ニーズがあれば、年1ぐらいの間隔で、この記事もアップデートできればよいなと考えている。
Copyright© Digital Advantage Corp. All Rights Reserved.