updated on 2020-01-26
Google Cloud Platform(GCP) とは、Google がクラウド上で提供するサービス群の総称です。
Google 社内で使われているものと同じテクノロジーやインフラを使用して、お客様のインフラ環境をクラウド化できます。
基本的な構成要素が初めから各種サービスとして用意されているため、それらを使用してすばやく開発を行うことができます。
AI Platform Deep Learning VM Image は、データサイエンスや機械学習タスク用に最適化された Debian 9 ベースの Compute Engine 仮想マシンイメージのセットです。すべてのイメージに主要な ML フレームワークとツールがプリインストールされています。また、GPU を持つインスタンスですぐに使用でき、データ処理タスクを高速化できます。
kaggleなどのコンペや大量のデータを扱う研究では、Google Colaboratoryやkaggleのコンソールではメモリーが足りなくなります。
Google Colaboratoryはとても優れたサービスで、GPUやTPUまで無料でつけられますが、筆者はRAMが不足してしまったがためにコードを実行できなくなったので、必要に応じてGPUやマシンタイプを変更できる、GCP にたどり着きました。(AWSやmicrosoft Azureもあります)
このVMでなくても実行環境を作ることはできますが、インスタンスを起動する前の初期設定が、ある程度機械学習向けに設定されており、主要な ML フレームワークとツールがプリインストールされています。
GPUやメモリをどう設定していけばいいか、細かい設定をどうするかにあまり悩まされない分、機械学習目的のユーザーにおすすめです。
はじめに、Google Cloud SDK の導入が必要です。Google Cloud SDKを導入していない人は先に以下の記事から準備を済ませてください。
Compute Engineのマーケットプレイスからdeep learning VMで検索
COMPUTE ENGINEで起動をクリック
必要に応じて変える
デプロイして無事に起動すれば手順1は終了
うまくいかない場合は、だいたい IAMの管理->割り当て でGPUの上限数が選択した個数より低くなっている。
割り当てを一切触っていないユーザーは、全て割り当ての上限は0になっているはず。
上限をあげて、デプロイする。
以下の画像のように書き込んで保存する
$ gcloud compute ssh [vmの名前] --zone=[vmのゾーン] -- -L 8888:localhost:8888
https://repo.anaconda.com/archive/ から最新のanacondaを探す
xxxxxx:~$ wget https://repo.anaconda.com/archive/Anaconda3-2019.03-Linux-x86_64.sh xxxxxx:~$ bash Anaconda3-2019.03-Linux-x86_64.sh Do you accept the license terms? [yes|no] [no] >>> yes Anaconda3 will now be installed into this location: /home/aaa@gmail.com/anaconda3 - Press ENTER to confirm the location - Press CTRL-C to abort the installation - Or specify a different location below [/home/aaa@gmail.com/anaconda3] >>> PREFIX=/home/aaa@gmail.com/anaconda3 xxxxxx
.bashrcの内容を保存
$ source ~/.bashrc
バージョン確認
$ conda -V conda 4.6.11
-bash: conda: command not found と出る場合はpathが通ってないだけなので、以下のようにする
パスが通ってないみたい
$ export PATH=/home/aaa@gmail.com/anaconda3/bin:$PATH (これは自分の設定するパス)
conda自体を更新
$ conda update -n base -c defaults conda
仮想環境を構築
pythonバージョン
(base) aaa_gmail_com@xxxx-vm:~$ python --version Python 3.7.3
仮想環境を例えば、kaggle_envという名前で構築
$ conda create --name kaggle_env python=3.6
(base) aaa_gmail_com@xxxx-vm:~$ conda activate kaggle_env (kaggle_env) aaa_gmail_com@xxxx-vm:~$
仮想環境に変わったのでpythonの環境も3.6になっている
(kaggle_env) aaa_gmail_com@xxxxx-vm:~$ python --version Python 3.6.10 :: Anaconda, Inc.
ちなみに、$ conda deactivate で仮想環境無効化できる。sshから抜けてもdeactivateした状態(base)に戻るので、sshした際はactivateコマンドを再度行う
infoコマンドで作成済の仮想環境一覧を確認
(kaggle_env) aaa_gmail_com@xxxxx-vm:~$ conda info -e
Jupyter Notebookをインストール
(kaggle_env) aaa_gmail_com@xxxxx-vm conda install jupyter
jupyterにパスワードまで設定したい人は以下を参照
筆者は、めんどくさいのでやってないですが、時間があればやろうかと思います。
https://qiita.com/hiro0822/items/44717858462366eda957
以下のコマンドでjupyter notebookが起動する
細かいオプションは各自好みに調整
(kaggle_env) aaa_gmail_com@xxxxx-vm:~$ jupyter notebook \ --NotebookApp.allow_origin='https://colab.research.google.com' \ --port=8888 \ --NotebookApp.port_retries=0 \ --no-browser
自分のファイルを実行するのに必要なライブラリをインストール
追加で必要なライブラリを揃える
(kaggle_env) aaa_gmail_com@xxxxx-vm:~$conda install pandas -y
(kaggle_env) aaa_gmail_com@xxxxx-vm:~$conda install seaborn
(kaggle_env) aaa_gmail_com@xxxxx-vm:~$conda install numpy
(kaggle_env) aaa_gmail_com@xxxxx-vm:~$conda install keras
(kaggle_env) aaa_gmail_com@xxxxx-vm:~$conda install tensorflow
(kaggle_env) aaa_gmail_com@xxxxx-vm:~$conda install -c anaconda py-xgboost
(kaggle_env) aaa_gmail_com@xxxxx-vm:~$conda install -c conda-forge lightgbm
(kaggle_env) aaa_gmail_com@xxxxx-vm:~$conda install -c conda-forge tqdm
また、以下のように設定すればGoogle Colaboratoryと接続できます。
https://research.google.com/colaboratory/local-runtimes.html
(kaggle_env) aaa_gmail_com@xxxxx-vm:~$ pip install jupyter_http_over_ws (kaggle_env) aaa_gmail_com@xxxxx-vm:~$ jupyter serverextension enable --py jupyter_http_over_ws (kaggle_env) aaa_gmail_com@xxxxx-vm:~$ jupyter notebook \ --NotebookApp.allow_origin='https://colab.research.google.com' \ --port=8888 \ --NotebookApp.port_retries=0 \ --no-browser