post Image
Cloud Datalabで手軽にディープラーニングを始める

Google Cloud PlatformのDatalabを使えば、15分位でMacやChromebookなどのブラウザだけでDeep Learningを始められます。

スクリーンショット 2018-01-08 11.45.41.png

datalab コマンドのインストール

GCPのCloud Shellを使う場合は、最初から datalab コマンドが使えます。
Macに datalab コマンドをインストールするなら

brew cask install google-cloud-sdk
gcloud components install datalab

Datalabインスタンスを作成

Datalabインスタンスmylabを作成します。

datalab create --zone asia-northeast1-a mylab --port 8080

数分でインスタンスの起動が終わり、接続ができる状態になると、

  • Cloud Shellでは
    Click on the *Web Preview* (square button at top-right), select *Change port > Port 8081*, and start using Datalab.
    というようなメッセージがコンソールに表示されるので、その通りに画面右上の四角いWeb PreviewボタンからChange port > Port 8081を選ぶと、Datalabの画面が出てきます。
  • Macなら、
    You can connect to Datalab at http://localhost:8081/
    というようなメッセージが表示され、ブラウザが自動的に開きます。

Datalabインスタンスへの接続

Datalabインスタンスへの接続を切断するには、単純にCloud ShellでCtrl-CすればOKです。

Datalabインスタンスをしばらく使っていないと、自動的に止まるようですが、明示的に停止するには

datalab stop mylab

次回Datalabインスタンスを立ち上げて利用するには

datalab connect mylab

必要なライブラリのインストール

DatalabにはデフォルトでTensorFlowがデフォルトでインストールされています。必要なものを追加できます。例えば、Kerasをインストールするにはノートブックで

!pip3 install keras

それだと、Datalabインスタンスを再起動するたびにやり直さないと行かないんで、スタートアップスクリプトに登録しておくと便利です。次をノートブックのセルで実行します。

%%bash
echo "pip3 install keras" >> /content/datalab/.config/startup.sh
cat /content/datalab/.config/startup.sh

Screenshot 2018-01-04 at 00.15.37.png

ソースコードの管理

Datalabにはコマンドラインで使うgitとブラウザで使うungitがデフォルトでインストールされています。パブリックなGitHubレポジトリならungitでsubmoduleとして数クリックで追加できます。

Screenshot 2018-01-04 at 00.19.34.png

データの配置

ノートブックはDatalab VMの/mnt/disks/datalab-pd/content/datalab/notebooksフォルダに格納されています。このフォルダがDockerコンテナーにマウントされて利用されるので、デフォルトではrootユーザの所有になっています。そこで、データをscpで配置するためにはまずフォルダの所有者をdatalabに変更してからデータをコピーします。

gcloud compute ssh mylab --command='sudo chown -R datalab /mnt/disks/datalab-pd/content/datalab/notebooks'

gcloud compute scp --recurse [LOCAL_DATA_FOLDER] \
datalab@mylab:/mnt/disks/datalab-pd/content/datalab/notebooks/

チームでDatalabを使う

Cloud Datalab インスタンスはシングルユーザー環境であるため、チームのメンバーごとに独自のインスタンスが必要です。Datalabインスタンス名をmylab-{USERNAME}などにすると区別し易くなります。

GCPプロジェクト内で作成された各 Cloud Datalab インスタンスは、プロジェクト内の同じdatalab-notebooks git レポジトリのクローンを datalab/notebooks ディレクトリに作成するため、これでノートブックをメンバー間で共有できます。

参考


『 Python 』Article List
Category List

Eye Catch Image
Read More

Androidに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Bitcoinに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Goに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

JavaScriptに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Pythonに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Rubyに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Scalaに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Swiftに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Unityに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Wordpressに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

機械学習に関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。