LoginSignup
1
1

More than 5 years have passed since last update.

PaperspaceのLinux MachineでKerasとPytorchを動かすまで

Posted at

Paperspaceは、クラウドGPU環境を提供しています。深層学習を実装する人にとって、AWSの代替サービスの1つです。GPUの時間単価が$0.51と安めであることや、マシン(AWSでいうインスタンス)の作成やオンオフの切り替えなどの手順がわかりやすいことが利点だと思います。

2018年8月現在、Paperspace上でGPUによる計算を行うには、主に次の3つがあるようです。

  1. ノートブックを開いて、作業する
  2. Jobという機能でスクリプトを実行する
  3. 仮想マシンを作成し、その上で作業する

1, 2は、すでに主要なライブラリの揃った状態の環境がいきなり立ち上がるなので、手軽です。
3にしても、機械学習向けの設定済みのテンプレートが存在して、それを使えば設定に苦労はないようです(ただし仕様意図を伝えて承認を得るまでは使えないようです)。最後に、空のUbuntu16.04サーバーの仮想マシンを作成する方法があります。その場合、分析環境の構築はすべて自前になります。この記事は、このマシンで、KerasとPytorchでGPUを用いた分析を行うまでの手順の記録です。Paperspace以外のUbuntu環境でもうまくいく可能性も高いと思われます。

NVIDIAのドライバーのインストール

私はこの手順をはじめ省略してしまった結果、libcuda.so.1が見つからないというエラーがでました。
下記のコマンドでインストールすると解消しました。こちらのブログのコピーです。

sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt-get update
sudo apt-get install nvidia-375

なお、このあと再起動が必要なようです。再起動後に、次のコマンドを打って状態を確認できます。

cat /proc/driver/nvidia/version

NVRM Version...というような出力がでるようです。

Minicondaとライブラリのインストール

ドライバさえ入れてしまえば、あとは慣れ親しんだMinicondaで行えます(Anacondaでも可)。かつては苦労したNVIDIAの関連ソフトのインストールも今やCondaが行ってくれるようです。

wget -v https://repo.continuum.io/miniconda/Miniconda3-latest-Linux-x86_64.sh
bash Miniconda3-latest-Linux-x86_64.sh -b -u
echo 'export PATH="/home/paperspace/miniconda3/bin:$PATH"' >> ~/.bashrc
source ~/.bashrc

途中の-bはバッチモードオプションで、途中のプロンプトやライセンスへの同意を「Yes」とみなしてスキップします。-uはアップデートの意味です。
3行目はログイン時にcondaの実行ファイルの場所をPATHに追加する設定を行い、最終行でその設定を読み込んでいます。

今回はKerasとpytorchの実験なので、下記の最小構成で用意します。切り替えのため仮想環境を作っています。

conda create -n testenv keras-gpu
source activate testenv
conda install pytorch torchvision -c pytorch

実験

Keras, Pytorchの実行確認のため、それぞれサンプルファイルをダウンロードします。公式のGitレポジトリから持ってくるのが簡単です。
なお、下記のようにtestディレクトリを作ってそこで実行しているのは、pytorchのスクリプトが親ディレクトリにdata/を作っており、それがPermissionエラーを起こしたためです。

# make test dir and move to it
mkdir test && cd test

# keras test
wget -v https://raw.githubusercontent.com/keras-team/keras/master/examples/mnist_cnn.py
python mnist_cnn.py

# pytorch test
wget -v https://raw.githubusercontent.com/pytorch/examples/master/mnist/main.py
python main.py

うまく行っていれば、どちらのスクリプトもMNISTを用いたCNNモデルを高速で学習します。

時間課金なので、実行後は忘れずにマシンを停止させます。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1