1時間で試す!さくらの高火力コンピューティングで深層学習(前編:環境セットアップ)

さくらインターネット 技術本部アプリケーショングループ アルバイトの伊東道明です。

ここ数年、人工知能や機械学習というワードが流行していて、興味のある方が増えてきています。
特に、機械学習の中でも深層学習(ディープラーニング)と呼ばれる技術がここ数年で爆発的に成長し、様々な大学や企業が特に力を入れています。
深層学習が利用されるようになったのは、GPUの普及による学習の超高速化が可能になったためです。しかし、性能のいいGPUは高価なため、なかなか手を出しづらい方も多いと思います。

さくらの高火力コンピューティングでは、GPUを積んだマシンを1時間単位でレンタルすることができます。1時間あたりの金額はなんとワンコイン以下です。そのため、比較的気軽に、そして簡単にGPUを使用でき、深層学習を始めたいけどリソース面で踏みとどまっていた方にはちょうど良い環境になるでしょう。

この連載では、さくらの高火力コンピューティングの申し込みから比較的単純なネットワーク構成で深層学習を行うプログラムを実行するところまでを分かりやすく説明します。
連載を最後まで読むと、実際にGPUを用いて深層学習を始めることができるようになります。

まず、今回はGPUを用いた深層学習を行うための基本的なセットアップを行います。

高火力コンピューティングの申し込み

まずは、高火力コンピューティングのサービスサイト(https://www.sakura.ad.jp/koukaryoku/)から右上「新規お申し込み」ボタンをクリック。

課金プランの選択画面から「時間課金のお申し込み」をクリック。

まず、高火力コンピューティングの申し込み画面に行き、ユーザ名とパスワードを入力しログインします。以下のような画面が出てくるので、利用開始ボタンをクリックします。

申し込みプランの一覧が表示されます。今回は、Nvidia Pascal アーキテクチャ  4枚モデルを選択します。

次に、お支払い方法を確認し、利用規約・約款に同意して申し込みをします。

これで申し込みは完了です。

完了すると、以下の画面が表示されるので、登録メールアドレスに案内メールが届くまでお待ちください。

メールが届いたら、案内に記載されているコントロールパネルのURLをクリックし、ログインします。コントロールパネルログインアカウントを作成していない方は、メールの案内にしたがって作成してログインしてください。

ログインすると「さくらの専用サーバ」のコントロールパネルが開きます。(高火力コンピューティングは、さくらの専用サーバシリーズです。)

ログインをし、上にあるバーのサーバをクリックすると、サーバ一覧が表示されるのでメールに記載されているIPアドレスのサーバをクリックします。

サーバの詳細ページが表示されるので、右上の起動ボタンをクリックしてください。

しばらくしたら、リモートからssh接続ができるようになります。

デフォルトのユーザ名はメールアドレスに記載されています。パスワードは、以下をクリックすると表示されます。

次からssh接続をしてマシンの設定をします。
以下の操作は、全てホームディレクトリで行っています。

CUDAをインストールする

2017.7.14 編集部追記:下記手順は、著者が本記事執筆時点において「NVIDIA TITAN X (Pascalアーキテクチャ)」モデルで確認した手順です。他モデルを使われる場合、NVIDIA社サイトから入手されたドライバのリビジョンが異なる場合など、得られる結果が下記と異なる場合がありますのでご了承ください。

GPUを使用するためには、CUDA Toolkitと呼ばれるソフトウェアがインストールされている必要があります。

まず、以下のコマンドでwgetを入れます。

$ sudo apt-get install wget

その後、CUDAダウンロードサイトにて、以下のように選択します。

  • Operating System…Linux
  • Architecture…x86_64
  • Distribution…Ubuntu
  • Version…14.04
  • Installer Type…dev(network)

その後、ダウンロードボタンが現れるので、右クリックしリンクのアドレスをコピーします。

その後、コピーしたリンクをwgetし、画像の赤枠にあるコマンドを実行します。

$ wget {コピーしたリンク先}
$ sudo dpkg -i cuda-repo-ubuntu1404_8.0.61-1_amd64.deb
$ sudo apt-get update 
$ sudo apt-get install cuda

以上でCUDAのインストールは完了です。

pyenv環境を整える

python環境を簡単に切り替えられるよう、pyenv環境を整えます。

以下の手順でコマンドを実行すると、pyenv環境が簡単に作れます。

$ sudo apt-get install python-dev python-pip
$ sudo apt-get install git gcc make openssl libssl-dev libbz2-dev libreadline-dev libsqlite3-dev
$ sudo apt-get install python3-tk tk-dev python-tk libfreetype6-dev
$ git clone https://github.com/yyuu/pyenv.git ~/.pyenv

次に、~/.bashrcに以下の内容を書き加えます。

export PYENV_ROOT=$HOME/.pyenv
export PATH=$PYENV_ROOT/bin:$PATH
eval "$(pyenv init -)"

その後、$ source ~/.bashrcを実行します。

以上で、pyenv環境の設定は完了です。

続いて、pyenv環境でpython2.7.11を使用するようにします。

$ pyenv install 2.7.11
$ pyenv local 2.7.11

以上でpython2.7.11環境を使用する環境が整いました。

深層学習ライブラリのインストール

深層学習をするためのライブラリとして、ここではKerasを用います。

Kerasとは

機械学習ライブラリであるTensorflowTheanoをバックエンドにして動作する、深層学習をするためのライブラリです。Tensorflowなどはとても有名なライブラリですが、多機能すぎて実験でコードを素早く実装したい時にはやや書きづらく不便と感じることがあります。そのため、より書きやすく、かつバックエンドの機能も必要な時は使えるライブラリであるKerasを今回は使います。また、バックエンドにはよりユーザ数の多いTensorflowを用います。

Kerasのインストール

以下の順にコマンドを実行してください。

$ pip install --upgrade pip
$ pip install keras 
$ pip install tensorflow-gpu

これで、インストールは完了しました。

最後に、パスを通して実行できる状態にし、バックエンドをtensorflowにします。

export CUDA_HOME=/usr/local/cuda
export LD_LIBRARY_PATH=${CUDA_HOME}/lib64
export PATH=${CUDA_HOME}/bin:${PATH}
export KERAS_BACKEND=tensorflow

以上でセットアップは終了です。

後編では、実際にサンプルプログラムを実行し、手書き文字認識を行います。