Zobacz na TensorFlow.org | Uruchom w Google Colab | Zobacz na GitHubie | Pobierz notatnik | Bieg w Kaggle |
Ten przewodnik pomoże początkującym użytkownikom skonfigurować konto Google Cloud Platform, szczególnie z myślą o wykorzystaniu tensorflow_cloud do łatwego przeprowadzania szkoleń na dużą skalę na platformie Google Cloud AI. TensorFlow Cloud udostępnia interfejsy API, które umożliwiają użytkownikom łatwe przechodzenie od debugowania, szkolenia i dostrajania kodu Keras i TensorFlow w środowisku lokalnym lub Kaggle do rozproszonego szkolenia/dostrajania w chmurze.
1. Zarejestruj się w Google Cloud Platform
Aby rozpocząć, przejdź na stronę https://cloud.google.com/ i kliknij „Rozpocznij za darmo”. To dwuetapowy proces rejestracji, w którym musisz podać swoje imię i nazwisko, adres oraz numer karty kredytowej. Konto startowe jest bezpłatne i obejmuje 300 dolarów kredytu do wykorzystania. Na tym etapie musisz zalogować się za pomocą konta Google (tj. konta Gmail).
Po zakończeniu procesu rejestracji zostaniesz przekierowany na stronę powitalną Google Cloud Platform . Kliknij kartę „Strona główna” i zanotuj swój identyfikator i numer projektu. (Zobacz Identyfikowanie projektów )
GCP_PROJECT_ID = 'YOUR_PROJECT_ID'
PROJECT_NUMBER = 'YOUR_PROJECT_NUMBER'
2. Włącz Google Cloud SDK i uwierzytelnij swój notatnik
Po skonfigurowaniu projektu możemy kontynuować pozostałe kroki konfiguracji bezpośrednio z tego notatnika. Istnieją trzy rodzaje notatników. Ten krok (krok nr 2) różni się nieznacznie w zależności od notatnika, a pozostałe kroki (kroki od 3 do 6) są takie same dla wszystkich notatników.
- 2.1. Autoryzacja dla notatników Kaggle
- 2.2. Autoryzacja dla notatnika Colab
- 2.3. Autoryzacja dla notatników Cloud AI — nieobsługiwana.
2.1 Konfiguracja uwierzytelniania dla notatnika Kaggle
Jeśli używasz notatnika Kaggle, musisz powtórzyć ten krok dla każdego nowego notatnika używanego w tym projekcie. W notatniku kliknij Dodatki -> Google Cloud SDK i postępuj zgodnie z instrukcjami w wierszu poleceń. Następnie uruchom poniższe polecenie, aby dodać dane uwierzytelniające do tego notatnika.
import sys
if "kaggle_secrets" in sys.modules:
from kaggle_secrets import UserSecretsClient
UserSecretsClient().set_gcloud_credentials(project=GCP_PROJECT_ID)
2.2 Konfiguracja uwierzytelniania dla notatnika Colab
Jeśli używasz notatnika Colab, musisz powtórzyć ten krok dla każdego nowego notatnika używanego w tym projekcie. Uruchom poniższe polecenie, aby dodać swoje dane uwierzytelniające do tego notatnika.
import sys
if "google.colab" in sys.modules:
from google.colab import auth
auth.authenticate_user()
3. Połącz swoje konto rozliczeniowe z projektem
Następnym krokiem jest skonfigurowanie konta rozliczeniowego dla tego projektu. Google Cloud domyślnie utworzy dla Ciebie projekt o nazwie „Mój pierwszy projekt”. Użyjemy tego domyślnego projektu. Użyj swojego identyfikatora projektu (z kroku 1), aby uruchomić poniższe polecenia. Spowoduje to wyświetlenie Twojego identyfikatora konta rozliczeniowego (Billing Account_ID). Zanotuj go w kolejnym kroku.
gcloud beta billing accounts listUżyj podanego powyżej identyfikatora konta rozliczeniowego i uruchom poniższe polecenie, aby połączyć konto rozliczeniowe z projektem.
Uwaga: jeśli używasz istniejącego projektu, możesz nie zobaczyć Account_ID. Oznacza to, że nie masz odpowiednich uprawnień do uruchamiania poniższych poleceń. Skontaktuj się z administratorem lub utwórz nowy projekt.
BILLING_ACCOUNT_ID = 'YOUR_BILLING_ACCOUNT_ID'
!gcloud beta billing projects link $GCP_PROJECT_ID --billing-account $BILLING_ACCOUNT_ID
4. Włącz wymagane interfejsy API dla tensorflow-cloud w swoim projekcie
W przypadku tensorflow_cloud korzystamy z dwóch konkretnych interfejsów API: AI Platform Training Jobs API i Cloud Builder API . Należy pamiętać, że jest to jednorazowa konfiguracja dla tego projektu i nie ma potrzeby ponownego uruchamiania tego polecenia dla każdego notatnika.
gcloud services --project $GCP_PROJECT_ID enable ml.googleapis.com cloudbuild.googleapis.com5. Utwórz kontener Google Cloud Storage
Będziemy używać tego zasobnika do przechowywania zasobów tymczasowych, a także do zapisywania punktów kontrolnych modelu. Zanotuj nazwę zasobnika na przyszłość. Pamiętaj, że nazwy zasobników są unikalne w skali globalnej.
BUCKET_NAME = 'YOUR_BUCKET_NAME'
GCS_BUCKET = f'gs://{BUCKET_NAME}'
!gsutil mb -p $GCP_PROJECT_ID $GCS_BUCKET
Utwórz konto serwisowe dla zadań HP Tuning
Ten krok jest wymagany do korzystania z HP Tuning w Google Cloud za pomocą CloudTuner. Aby utworzyć konto usługi i przyznać mu dostęp do edytora projektu, uruchom poniższe polecenie i zanotuj nazwę swojego konta usługi.
SERVICE_ACCOUNT_NAME ='YOUR_SERVICE_ACCOUNT_NAME'
SERVICE_ACCOUNT_EMAIL = f'{SERVICE_ACCOUNT_NAME}@{GCP_PROJECT_ID}.iam.gserviceaccount.com'
!gcloud iam --project $GCP_PROJECT_ID service-accounts create $SERVICE_ACCOUNT_NAME
!gcloud projects add-iam-policy-binding $GCP_PROJECT_ID \
--member serviceAccount:$SERVICE_ACCOUNT_EMAIL \
--role=roles/editor
default AI Platform service account jest identyfikowane za pomocą adresu e-mail w formacie service-PROJECT_NUMBER@cloud-ml.google.com.iam.gserviceaccount.com . Na podstawie numeru projektu z kroku pierwszego tworzymy adres e-mail konta usługi i przyznajemy mu default AI Platform service account (roles/iam.serviceAccountAdmin).
DEFAULT_AI_PLATFORM_SERVICE_ACCOUNT = f'service-{PROJECT_NUMBER}@cloud-ml.google.com.iam.gserviceaccount.com'
!gcloud iam --project $GCP_PROJECT_ID service-accounts add-iam-policy-binding \
--role=roles/iam.serviceAccountAdmin \
--member=serviceAccount:$DEFAULT_AI_PLATFORM_SERVICE_ACCOUNT \
$SERVICE_ACCOUNT_EMAIL
Gratulacje!
Możesz teraz uruchomić tensorflow-cloud. Pamiętaj, że te kroki wystarczy wykonać tylko raz. Po skonfigurowaniu projektu możesz ponownie wykorzystać tę samą konfigurację projektu i kontenera do przyszłych uruchomień. W przypadku nowych notatników konieczne będzie powtórzenie kroku drugiego w celu dodania danych uwierzytelniających Google Cloud.
Zanotuj poniższe wartości, ponieważ będą potrzebne do uruchomienia tensorflow-cloud.
print(f"Your GCP_PROJECT_ID is: {GCP_PROJECT_ID}")
print(f"Your SERVICE_ACCOUNT_NAME is: {SERVICE_ACCOUNT_NAME}")
print(f"Your BUCKET_NAME is: {BUCKET_NAME}")
Your GCP_PROJECT_ID is: YOUR_PROJECT_ID Your SERVICE_ACCOUNT_NAME is: YOUR_SERVICE_ACCOUNT_NAME Your BUCKET_NAME is: YOUR_BUCKET_NAME
Zobacz na TensorFlow.org
Uruchom w Google Colab
Zobacz na GitHubie
Pobierz notatnik
Bieg w Kaggle