【随時更新】pyenv + Anaconda (Ubuntu 16.04 LTS) で機械学習のPython開発環境をオールインワンで整える

2016/08/21 | #環境構築  #Ubuntu  Shinpei Kawahito 

筆者の機械学習系のPython開発環境は、Vagrant を用いた Ubuntu (16.04 LTS) 上に構築しています。
ここでは、画像認識、音声認識、自然言語処理などに必要な環境をオールインワンで構築する手順をまとめます。
(最終更新日: 2016/11/14)

OSバージョン

OSバージョンは下記の通りです。

$ cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=16.04
DISTRIB_CODENAME=xenial
DISTRIB_DESCRIPTION="Ubuntu 16.04.1 LTS"
$ uname -a
Linux vagrant 4.4.0-31-generic #50-Ubuntu SMP Wed Jul 13 00:07:12 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux

pyenv + Anaconda の環境を構築

Python環境は、pyenv + Anacodaを用いて構築します。
pyenvやAnacondaの概要やメリットについては、下記の記事に詳しくまとまっています。
データサイエンティストを目指す人のpython環境構築 2016

上記の記事にあるように、ここでもpyenvはAnacondaのインストーラとしてのみ使用し、Python環境の切り替えはAnacondaで行うこととします。

必要なパッケージのインストール

まず、必要なパッケージをインストールします。

$ sudo apt-get install -y make build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev libncursesw5-dev libpng-dev

pyenvのインストール

pyenvおよびプラグインをインストールし、環境を整えます。

$ git clone git://github.com/yyuu/pyenv.git ~/.pyenv
$ git clone https://github.com/yyuu/pyenv-pip-rehash.git ~/.pyenv/plugins/pyenv-pip-rehash
$ echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc
$ echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc
$ echo 'eval "$(pyenv init -)"' >> ~/.bashrc
$ source ~/.bashrc

Anacondaのインストール

まず、最新のAnaconda (Python3系) のバージョンを確認します。

$ pyenv install -l | grep anaconda3
  anaconda3-2.0.0
  anaconda3-2.0.1
  anaconda3-2.1.0
  anaconda3-2.2.0
  anaconda3-2.3.0
  anaconda3-2.4.0
  anaconda3-2.4.1
  anaconda3-2.5.0
  anaconda3-4.0.0
  anaconda3-4.1.0

最新のAnaconda (ここでは4.1.0) をインストールし、デフォルトとして設定します。

$ pyenv install anaconda3-4.1.0
$ pyenv global anaconda3-4.1.0
$ echo 'export PATH="$PYENV_ROOT/versions/anaconda3-4.1.0/bin:$PATH"' >> ~/.bashrc
$ source ~/.bashrc

Pythonの環境を確認します。

$ python --version
Python 3.5.1 :: Anaconda 4.1.0 (64-bit)

Python2系の導入

ここまでで、Python3系の環境が構築できました。
場合によって、Python2系の環境が必要になることもあるので、導入しておきます。

$ conda create -n py27con python=2.7 anaconda

上記環境に切り替えるには以下のコマンドを叩きます。

$ source activate py27con

Python環境が切り替わっていることを確認します。

$ python --version
Python 2.7.12 :: Anaconda 4.1.0 (64-bit)

なお、下記で環境を抜けることができます。

$ source deacivate

Pythonライブラリのインストール

以下、用途に応じて必要なPythonライブラリ (+ 本体) をインストールしていきます。
conda経由が便利なものはcondaで、それ以外はpipで行います。

諸々インストールする前に自身を更新しておきます。

$ conda update -y conda
$ pip install --upgrade pip

深層学習ライブラリ

TensorFlow

https://www.tensorflow.org/

Googleの深層学習ライブラリ。conda経由で最新バージョンを一発でインストールします。

$ conda install -y -c jjhelmus tensorflow

Chainer

http://chainer.org/

PFNの深層学習ライブラリ。

$ pip install chainer

Keras

https://keras.io/

TensorFlowおよびTheanoのラッパー。同時にTheanoも入ります。

$ pip install keras

画像認識

ImageMagick

http://imagemagick.org/script/index.php

画像処理ライブラリ。conda経由で本体もまとめてインストールします。

$ conda install -y -c vdbwrair imagemagick

OpenCV

http://opencv.org/

コンピュータビジョンライブラリ。

$ conda install -y -c menpo opencv3

Dlib

http://dlib.net/

画像処理系が充実している機械学習ライブラリ。cmakeboost-pythonも同時にインストールします。

$ sudo apt-get -y install libboost-python-dev cmake
$ conda install -y -c wordsforthewise dlib

https://github.com/AlpacaDB/selectivesearch

Alpacaが提供しているSelectiveSearchに特化したライブラリ。

$ pip install selectivesearch

音声認識

Kaldi

http://kaldi-asr.org/

深層学習を用いた音声認識ツールキット。下記の記事を参照してください。
Kaldiで音声を学習させる 〜ディープラーニングを用いた音声認識ツールキット〜

FFmpeg

https://ffmpeg.org/

音声・動画処理ライブラリ。

$ conda install -y -c conda-forge ffmpeg

librosa

https://github.com/librosa/librosa

音声・音楽解析ライブラリ。

$ conda install -y -c conda-forge librosa

自然言語処理

MeCab

http://taku910.github.io/mecab/

形態素解析エンジン。本体はapt-getでインストールします。

$ sudo apt-get -y install libmecab-dev mecab mecab-ipadic mecab-ipadic-utf8
$ pip install mecab-python3

gensim

https://radimrehurek.com/gensim/

トピックモデルのライブラリ。

$ pip install gensim

強化学習

OpenAI Gym

https://gym.openai.com/

強化学習のトレーニング環境。

$ pip install gym

その他便利ツール

TightVNC Server

http://www.tightvnc.com/

リモートデスクトップ環境。下記の記事を参照してください。
Ubuntu 16.04 LTSにXcfeとTightVNC Serverでリモートデスクトップ環境を構築する

著者紹介
阪神タイガースと天下一品が好きなエンジニア。