Ver em TensorFlow.org | Execute no Google Colab | Ver no GitHub | Baixar caderno | Corra em 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 aos usuários passar facilmente da depuração, treinamento e ajuste do código Keras e TensorFlow em um ambiente local ou kaggle até treinamento/ajuste distribuído na nuvem.
1. Inscreva-se no Google Cloud Platform
Para começar, acesse https://cloud.google.com/ e clique em “Começar gratuitamente". Este é um processo de inscrição em duas etapas, onde você precisará fornecer seu nome, endereço e um cartão de crédito. A conta inicial é gratuito e vem com um crédito de $ 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 "Home" e anote o ID do projeto e o número do projeto. (veja Identificação de 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, esta etapa (etapa 2) é um pouco diferente para cada notebook, o restante das etapas (etapas 3 a 6) são iguais para todos os notebooks.
- 2.1. Autenticação para notebooks Kaggle
- 2.2. Autenticação para notebook Colab
- 2.3. Autenticação para Cloud AI Notebooks: não compatível.
2.1 Configurar autenticação para um notebook Kaggle
Se você estiver usando um notebook Kaggle, precisará repetir esta etapa para qualquer novo notebook usado neste projeto. No seu notebook, clique em Complementos -> Google Cloud SDK e siga as instruções no prompt. Em seguida, execute o seguinte comando 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 neste projeto. Execute o comando a seguir 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 faturamento. 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, poderá não ver um Account_ID, isso significa que você não tem as permissões adequadas para executar os comandos a seguir, entrar em contato com seu administrador ou criar um novo projeto.
BILLING_ACCOUNT_ID = 'YOUR_BILLING_ACCOUNT_ID'
!gcloud beta billing projects link $GCP_PROJECT_ID --billing-account $BILLING_ACCOUNT_ID
4. Habilite APIs necessá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 intervalo do Google Cloud Storage
Usaremos esse intervalo 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
Crie uma conta de serviço para trabalhos do HP Tuning
Esta etapa é necessária para usar o HP Tuning no Google Cloud usando CloudTuner. Para criar uma conta de serviço e conceder-lhe 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 etapa um, construímos o e-mail da conta de serviço e concedemos a função de administrador default AI Platform service account
(roles/iam.serviceAccountAdmin) na 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ê poderá reutilizar o mesmo projeto e configuração de intervalo para execuções futuras. Para quaisquer 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