GCPの設定
参考
https://medium.com/tensorflow/training-and-serving-a-realtime-mobile-object-detector-in-30-minutes-with-cloud-tpus-b78971cf1193
GCP
Projectの作成
https://console.cloud.google.com/projectcreate からプロジェクトを作成する。
支払いの有効化
TPUは基本有料なので、支払いのアカウント設定をおこなう
Cloud Machine Learning Engine ComputeのAPI有効化
https://console.cloud.google.com/flows/enableapi?apiid=ml.googleapis.com,compute_component
からCloud Machine Learning Engine ComputeのAPIを有効化する
ローカルにDockerのインストール
$ docker run -it -p 8888:8888 tensorflow/tensorflow
すでにdocker imageをインストール済みの場合
1 | $ docker ps |
でContainer IDを取得し、
1 | $ dockder start 起動したコンテナID |
で起動する。
Google Cloud SDKのインストール
起動したDockerにログインする
1 2 3 | $ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 349f71072537 tensorflow/tensorflow "/run_jupyter.sh --a…" 2 weeks ago Up 3 days 6006/tcp, 0.0.0.0:8888->8888/tcp keen_euclid |
1 | $ docker exec -it 349f71072537 /bin/bash
|
Google Cloud SDK を https://cloud.google.com/sdk/docs/quickstart-debian-ubuntu からダウンロードして、docker内にインストールする。
docker内で実行
1 2 3 4 | $ export CLOUD_SDK_REPO="cloud-sdk-$(lsb_release -c -s)" && \ echo "deb http://packages.cloud.google.com/apt $CLOUD_SDK_REPO main" | tee -a /etc/apt/sources.list.d/google-cloud-sdk.list && \ curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add - && \ apt-get update -y && apt-get install google-cloud-sdk -y |
プロジェクトの設定
GCPのホームに戻り、プロジェクトIDをコピーしてくる。
プロジェクトIDを指定して、configを実行
docker内で実行
1 | $ gcloud config set project "プロジェクトID" |
バケットの作成
docker内で実行
1 | $ gcloud auth login |
で、GCPとDocker間でのログイン認証をおこなう。
データ等をおくバケットを作成する。
docker内で実行
1 | $ gsutil mb gs://バケット名 |
環境変数の整備
docker内で実行
1 2 | $ export PROJECT="プロジェクトID" $ export YOUR_GCS_BUCKET="バケット名" |
docker内で実行
1 2 | $ curl -H "Authorization: Bearer $(gcloud auth print-access-token)" \ https://ml.googleapis.com/v1/projects/${PROJECT}:getConfig |
1 2 3 4 5 6 7 | { "serviceAccount": "service-###########@cloud-ml.google.com.iam.gserviceaccount.com", "serviceAccountProject": "#############" "config": { "tpuServiceAccount": "service-##########.iam.gserviceaccount.com" } } |
docker内で実行
1 | $ export TPU_ACCOUNT="tpuServiceAccountの値" |
docker内で実行
1 2 | $ gcloud projects add-iam-policy-binding $PROJECT \ --member serviceAccount:$TPU_ACCOUNT --role roles/ml.serviceAgent |
member情報がでてくれば、成功。