LoginSignup
0
1

More than 3 years have passed since last update.

GCPでkaggleのための環境構築をする

Posted at

初めに

kaggleの画像コンペで、GPU環境を使うためにGCPを使いました。環境構築方法をまとめようと思います。

GCPを使う理由やインスタンスの作成に関しては以下の記事がとても参考になります。
https://qiita.com/lain21/items/a33a39d465cd08b662f1

GCEインスタンスの作成

私は以下のような環境を作りました。
- リージョン: us-west1-b
- マシンタイプ: n1-highmem-8(vCPU x 8、メモリ 52 GB)
- GPU: 1 x NVIDIA Tesla P100

インスタンスが作成できたら、実際に環境に入ってみます。

gcloudの使い方

macで使う場合は、SDKをインストールします

curl https://sdk.cloud.google.com | bash

その後.zshrc(bashrc)に以下を追記します。

source '/Users/ユーザー名/google-cloud-sdk/path.zsh.inc'

source '/Users/ユーザー名/google-cloud-sdk/completion.zsh.inc'

よく使うコマンドは以下になります。

# インスタンスの一覧を確認
gcloud compute instances list

# インスタンスを起動
gcloud compute instances start <your-instance-name>

# インスタンスを停止
gcloud compute instances stop <your-instance-name>

※インスタンスが起動している限りは料金が発生してしまうので、使わなくなっったらすぐ停止しましょう!!!

GPU環境への接続は、VMインスタンス管理画面上の、以下のgcloudコマンドを表示するに記載されているコマンドを打てばできます。

以下のようなコマンドです。

gcloud beta compute ssh --zone <リージョン名> <インスタンス名> --project <プロジェクト名>

ただ、毎回このコマンドを打つのも面倒なので、.ssh/configに記載して簡単に接続できるようにします。

生成済みのSSH keyを使用する方法もありますが、今回はgcloud用に新しく生成します。ただ、キーの生成もconfigへの記載も以下のコマンドを打つだけなのでとても便利です。

gcloud compute config-ssh

You should now be able to use ssh/scp with your instances.
For example, try running:

  $ ssh hogehoge

これで簡単にssh接続で環境に入れるようになります。

ここでssh接続を簡略化したことによって、VScodeの接続が可能になります。

VScodeでssh接続する

これに関しては以下の記事が参考になります。
https://qiita.com/nlog2n2/items/1d1358f6913249f3e186

まず、VScodeにRemote-sshのプラグインを導入します。

スクリーンショット 2020-07-21 22.46.01.png

そうしたら左下に緑色のボタンができるので、そこを押すと以下の画面が表示されます(コマンドパレットからも操作できます)。

スクリーンショット 2020-07-21 22.47.44.png

ここで、Remote-SSH: Connect to Hostを選択するとGCPの環境名が表示されるので、それをクリックすれば完了です。

画像コンペのためのデータセットを配置する

データセットはインスタンスに配置しました。

(注)画像(コンペで配布されるzipファイルやそれを解凍したjpgファイル等)をストレージに置いてしまうと、解凍さえできないくらい遅いです。
画像は、インスタンス側におくか、pickleなどに固めてストレージにおくなどします

以下のカレーちゃんさんの記事を参考にしました。
https://currypurin.qrunch.io/entries/T9iGWHdsiI6o2wke

localからのファイルのコピーは以下のコマンドで実行できます。

# ファイルをコピー
gcloud compute copy-files <local-path> <your-instance-name>:~

tmuxの設定

画像系の学習にはかなりの時間を必要とする場合が多いです。その時にssh接続が切れてしまっても学習を継続できるように、学習時にはtmuxを使いましょう。

# 以下でセッションを開始
tmux new -s <セッション名>

# 再接続する時は以下
tmux a -t <セッション名>

コマンドは以下の記事にわかりやすくまとまっています。
https://qiita.com/nmrmsys/items/03f97f5eabec18a3a18b

終わりに

ここまでできたらあとは思い思いに学習を回すだけ...

GCPを使うからには、自分も良い結果を残せるように頑張ろうと思います。

何かアドバイスや間違いがありましたら是非コメントをください!!

0
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
0
1