Como treinar com o TensorFlow 2

Treine um modelo de machine learning com o TensorFlow 2 no AI Platform Training usando o ambiente de execução versão 2.1 ou posterior. O TensorFlow 2 simplifica muitas APIs a partir do TensorFlow 1. A documentação do TensorFlow fornece um guia para migrar o código do TensorFlow 1 para o TensorFlow 2.

A execução de um job de treinamento com o TensorFlow 2 no AI Platform Training segue o mesmo processo que a execução de outros job de treinamento de código personalizado. No entanto, alguns recursos do AI Platform Training funcionam de forma diferente com o TensorFlow 2 se comparados ao modo que eles funcionam com o TensorFlow 1. Este documento fornece um resumo dessas diferenças.

Suporte à versão Python

Os ambientes de execução de versão 2.1 e posteriores aceitam apenas o treinamento com Python 3.7. Portanto, você precisa usar o Python 3.7 para treinar com o TensorFlow 2.

A Python Software Foundation encerrou o suporte ao Python 2.7 em 1º de janeiro de 2020. Nenhuma versão de ambiente de execução do AI Platform lançada após 1º de janeiro de 2020 é compatível com o Python 2.7.

Treinamento distribuído

O TensorFlow 2 fornece uma API atualizada para treinamento distribuído. Além disso, o AI Platform Training define a variável de ambiente TF_CONFIG de maneira diferente nos ambientes de execução versão 2.1 e posteriores. Esta seção descreve as duas alterações.

Estratégias de distribuição

Para realizar o treinamento distribuído com várias instâncias de máquina virtual (VM) no TensorFlow 2, use a API tf.distribute.Strategy. Em particular, recomendamos que você use a API Keras junto com o MultiWorkerMirroredStrategy ou, se você especificar servidores de parâmetros para seu job, o ParameterServerStrategy. No entanto, o TensorFlow atualmente oferece apenas suporte experimental para essas estratégias.

TF_CONFIG

O TensorFlow espera que uma variável de ambiente TF_CONFIG seja definida em cada VM usada para o treinamento. O AI Platform Training define automaticamente essa variável de ambiente em cada VM usada no seu job de treinamento. Isso permite que cada VM se comporte de maneira diferente dependendo de seu tipo e ajuda as VMs a se comunicarem entre si.

No ambiente de execução versão 2.1 e posterior, o AI Platform Training não usa mais o tipo de tarefa master em nenhuma variável de ambiente TF_CONFIG. Em vez disso, o master worker do seu job de treinamento é rotulado com o tipo chief na variável de ambiente TF_CONFIG. Saiba mais sobre como o AI Platform Training define a variável de ambiente TF_CONFIG.

Aceleradores para treinamento

O AI Platform Training permite acelerar jobs de treinamento com GPUs e TPUs.

GPUs

Para aprender a usar GPUs para treinamento, leia o guia AI Platform Training para configurar GPUs e o TensorFlow para usar GPUs.

Se você quiser treinar em uma única VM com várias GPUs, , a prática recomendada é usar MirroredStrategy do TensorFlow. Se você quiser treinar usando várias VMs com GPUs, a prática recomendada é usar MultiWorkerMirroredStrategy do TensorFlow.

TPUs

Para saber como usar TPUs para o treinamento, leia o guia de treinamento com TPUs.

Ajuste de hiperparâmetros

Se você estiver executando um job de ajuste de hiperparâmetros com o TensorFlow 2, talvez seja necessário ajustar a forma como seu código de treinamento informa a métrica de ajuste de hiperparâmetros para o serviço AI Platform Training.

Se você estiver treinando com um Estimator, poderá gravar sua métrica em um resumo da mesma forma que faz no TensorFlow 1. Se você estiver treinando com o Keras, recomendamos que use o tf.summary.scalar para escrever um resumo.

Saiba mais sobre como gerar relatórios da sua métrica de hiperparâmetro e veja exemplos de como fazer isso no TensorFlow 2.

A seguir