Veja no TensorFlow.org | Executar no Google Colab | Ver no GitHub | Baixar caderno | Corra no Kaggle |
Este guia é para ajudar os usuários iniciantes a configurar uma conta do Google Cloud Platform especificamente com a intenção de usar tensorflow_cloud para executar facilmente o treinamento em escala no Google Cloud AI Platform. O TensorFlow Cloud fornece APIs que permitem que os usuários passem facilmente da depuração, treinamento, ajuste de código Keras e TensorFlow em um ambiente local ou kaggle para treinamento/ajuste distribuído na nuvem.
1. Inscreva-se no Google Cloud Platform
Para começar, acesse https://cloud.google.com/ e clique em "Comece gratuitamente". Este é um processo de inscrição em duas etapas, no qual você precisará fornecer seu nome, endereço e cartão de crédito. A conta inicial é gratuito e vem com um crédito de US$ 300 que você pode usar. Para esta etapa, você precisará fornecer uma Conta do Google (ou seja, sua conta do Gmail) para fazer login.
Após concluir o processo de inscrição, você será redirecionado para a página de boas-vindas do Google Cloud Platform . clique na guia "Início" e anote o ID do projeto e o número do projeto. (veja Identificando projetos )
GCP_PROJECT_ID = 'YOUR_PROJECT_ID'
PROJECT_NUMBER = 'YOUR_PROJECT_NUMBER'
2.Ative o SDK do Google Cloud e autentique seu notebook
Agora que você configurou seu projeto, podemos continuar com o restante das etapas de configuração diretamente deste notebook. Existem três tipos de notebook, este passo (passo #2) é ligeiramente diferente para cada notebook, o resto dos passos (passo #3 a #6) são os mesmos para todos os notebooks.
- 2.1. Autenticação para notebooks Kaggle
- 2.2. Autenticação para notebook Colab
- 2.3. Autenticação para notebooks do Cloud AI - não compatível.
2.1 Configuração de autenticação para um notebook Kaggle
Se você estiver usando um notebook Kaggle, precisará repetir esta etapa para qualquer novo notebook usado com este projeto. Em seu notebook, clique em Add-ons -> Google Cloud SDK e siga as instruções no prompt. Em seguida, execute o comando a seguir para adicionar suas credenciais de autenticação a este notebook.
import sys
if "kaggle_secrets" in sys.modules:
from kaggle_secrets import UserSecretsClient
UserSecretsClient().set_gcloud_credentials(project=GCP_PROJECT_ID)
2.2 Configurar autenticação para um notebook Colab
Se você estiver usando um notebook Colab, precisará repetir esta etapa para qualquer novo notebook usado com este projeto. Execute o seguinte comando para adicionar suas credenciais de autenticação a este notebook.
import sys
if "google.colab" in sys.modules:
from google.colab import auth
auth.authenticate_user()
3. Vincule sua conta de faturamento ao seu projeto
A próxima etapa é configurar a conta de faturamento para este projeto. O Google Cloud cria um projeto para você por padrão, chamado "Meu primeiro projeto". Usaremos este projeto padrão. Use seu ID do projeto (da etapa 1) para executar os comandos a seguir. Isso mostrará seu ID_da conta de cobrança. Anote isso para a próxima etapa.
gcloud beta billing accounts list
Use seu Billing Account_ID acima e execute o seguinte para vincular sua conta de faturamento ao seu projeto.
Observe que se você usar um projeto existente, talvez não veja um Account_ID, isso significa que você não tem as permissões adequadas para executar os comandos a seguir, entre em contato com seu administrador ou crie um novo projeto.
BILLING_ACCOUNT_ID = 'YOUR_BILLING_ACCOUNT_ID'
!gcloud beta billing projects link $GCP_PROJECT_ID --billing-account $BILLING_ACCOUNT_ID
4. Ative APIs obrigatórias para tensorflow-cloud em seu projeto
Para tensorflow_cloud, usamos duas APIs específicas: API AI Platform Training Jobs e API Cloud builder . Observe que esta é uma configuração única para este projeto, você não precisa executar novamente este comando para cada notebook.
gcloud services --project $GCP_PROJECT_ID enable ml.googleapis.com cloudbuild.googleapis.com
5. Crie um bucket do Google Cloud Storage
Usaremos esse bucket de armazenamento para ativos temporários, bem como para salvar os pontos de verificação do modelo. Anote o nome do bucket para referência futura. Observe que os nomes dos buckets são exclusivos globalmente.
BUCKET_NAME = 'YOUR_BUCKET_NAME'
GCS_BUCKET = f'gs://{BUCKET_NAME}'
!gsutil mb -p $GCP_PROJECT_ID $GCS_BUCKET
Criar uma conta de serviço para trabalhos do HP Tuning
Esta etapa é necessária para usar o HP Tuning no Google Cloud usando o CloudTuner. Para criar uma conta de serviço e conceder a ela acesso de editor de projeto, execute o comando a seguir e anote o nome da sua conta de serviço.
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
A default AI Platform service account
é identificada por um endereço de e-mail com o formato service-PROJECT_NUMBER@cloud-ml.google.com.iam.gserviceaccount.com
. Usando o número do projeto da primeira etapa, construímos o e-mail da conta de serviço e concedemos a função de administrador da default AI Platform service account
(roles/iam.serviceAccountAdmin) em sua nova conta de serviço.
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
Parabéns!
Agora você está pronto para executar o tensorflow-cloud. Observe que essas etapas só precisam ser executadas uma vez. Depois de configurar o projeto, você pode reutilizar o mesmo projeto e configuração de bucket para execuções futuras. Para todos os novos notebooks, você precisará repetir a etapa dois para adicionar suas credenciais de autenticação do Google Cloud.
Anote os valores a seguir, pois eles são necessários para executar o 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