CV・NLPハマりどころメモ

画像認識と自然言語処理を研究する上でうまくいかなかったことと,その対策をまとめる自分用のメモが中心.

EC2のGPU付インスタンスでCloud9を使う[AWS][Cloud9]

Cloud9を構築する際にデフォルトで選択できるインスタンスはCPUのものしかない.

このため,筆者はGPU付きのインスタンスを別でたてて,そこにCloud9をインストールをしたのだが,色々とハマりポイントがあり,1週間ほどこの作業に費やしてしまったので,備忘録として本記事を作成する.

EC2でGPU付きインスタンスを構築

AWSコンソールでインスタンスをたてる.基本的な方法は,ほかにも紹介記事がたくさんあるので割愛.

注意点①

インスタンスのストレージを250GBくらいに変更しておくこと.

デフォルトの値は8GBであったため,NVIDIAドライバをインストールするとすぐ容量いっぱいになってしまう(一度失敗経験あり).ここでしっかりと設定をしておく.

EBS(ストレージ)をインスタンスにアタッチする

インスタンスを作る目的は,Kaggleのコンペに挑戦することなので,データセット格納用のEBSをアタッチしておく.

本手順は,後でもできるが,構築の際にやっておかないと手順を忘れてしまうことがある.

Cloud9のインストール

以下の手順に沿ってインストールを行う.

vastee.hatenablog.com

以下メモ.

起動後のインスタンスでは,初めにsudo apt updateをかけておくこと.

NodeJSのインストールのために,一旦Mobaextermなどのsshクライアントで,アクセスすることがある.

インスタンスにPython3.6をインストールする

注意点②

Python3.6を入れること

Python3.6じゃないとCloud9上で切り替えることができない.# なぜだろう?原因は特定できていない.

add-apt-repository ppa:jonathonf/python-3.6

apt-get update

sudo apt-get install python3.6 python3.6-dev

wget https://bootstrap.pypa.io/get-pip.py

sudo chown -R ubuntu:ubuntu /usr/local/ # rootしかアクセスできないパーミッションになっているので変更

python3.6 get-pip.py # python get-pip.pyだとデフォルトのpython3.5にインストールされてしまうことがある

vim ~/.bashrc
>> alias python='python3.6'

source ~/.bashrc

python -V
>> Python 3.6.8

pip -V
>> pip 19.1.1 from /usr/local/lib/python3.6/dist-packages/pip (python 3.6)

以下メモ.

Ubuntu16.04には標準でPython3.5が入っているのだが,これを消そうとするとシステムが壊れるので,気持ち悪いのは我慢して消さずにエイリアス変更で我慢しよう.ちなみに上のadd-apt-repositoryのコマンドを打つと A plain backport of just Python 3.6. System extensions/Python libraries may or may not work. という警告がでてくる.

Cloud9のプリファレンスをPython3に切り替える

うまくいっていることを祈りながらテストする.

テストに使ったスクリプト

import sys
print(sys.version)

所望のPythonバージョンがでてきたら,完了

以下はTensorflowを使うためのオプション. ~~~

Nvidiaドライバをインストール

ひとまずGPUの型を確認する.

lspci | grep -i nvidia
>> 00:1d.0 VGA compatible controller: NVIDIA Corporation GM204GL [Tesla M60] (rev a1)
>> 00:1e.0 VGA compatible controller: NVIDIA Corporation GM204GL [Tesla M60] (rev a1)

Tesla M60 だったので,https://www.nvidia.co.jp/Download/index.aspx?lang=jp からインストーラをダウンロード.

chmod 755 NVIDIA-Linux-x86_64-418.67.run

sudo ./NVIDIA-Linux-x86_64-418.67.run

nvidia-smiが叩けるかを確認.

CUDA10.0をインストール

以下の手順に沿ってインストール

https://developer.nvidia.com/cuda-downloads?target_os=Linux&target_arch=x86_64&target_distro=Ubuntu&target_version=1604&target_type=debnetwork

nvcc -Vが叩けるか確認.

TensorflowとKerasをインストール(オプション)

sudo apt-get install -y git build-essential libssl-dev language-pack-id

pip install tensorflow-gpu

#### cuDNN7.1をインストール

以下のサイトからインストール.

https://developer.nvidia.com/rdp/cudnn-download#a-collapse751-101