As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Prepare um trabalho de treinamento para coletar dados TensorBoard de saída
Um trabalho de treinamento típico para aprendizado de máquina em SageMaker IA consiste em duas etapas principais: preparar um script de treinamento e configurar um objeto estimador de SageMaker IA do SDK AI SageMaker Python. Nesta seção, você aprenderá sobre as mudanças necessárias para coletar dados TensorBoard compatíveis de trabalhos de SageMaker treinamento.
Pré-requisitos
A lista a seguir mostra os pré-requisitos para começar a usar SageMaker a IA. TensorBoard
-
Um domínio de SageMaker IA configurado com a Amazon VPC em sua AWS conta.
Para obter instruções sobre como configurar um domínio, consulte Integrar o domínio Amazon SageMaker AI usando a configuração rápida. Você também precisa adicionar perfis de usuário de domínio para que usuários individuais TensorBoard acessem o no SageMaker AI. Para obter mais informações, consulte Adicionar perfis de usuário.
-
A lista a seguir é o conjunto mínimo de permissões para uso TensorBoard na SageMaker IA.
-
sagemaker:CreateApp
-
sagemaker:DeleteApp
-
sagemaker:DescribeTrainingJob
-
sagemaker:Search
-
s3:GetObject
-
s3:ListBucket
-
Etapa 1: modifique seu script de treinamento com ferramentas TensorBoard auxiliares de código aberto
Certifique-se de determinar quais tensores e escalares de saída coletar e modificar as linhas de código em seu script de treinamento usando qualquer uma das seguintes ferramentas: TensorBoard X, TensorFlow Summary Writer, PyTorch Summary Writer ou SageMaker Debugger.
Além disso, certifique-se de especificar o caminho de saída de TensorBoard dados como o diretório de log (log_dir
) para retorno de chamada no contêiner de treinamento.
Para obter mais informações sobre retornos de chamada por estrutura, consulte os recursos a seguir.
-
Para PyTorch, use torch.utils.tensorboard. SummaryWriter
. Consulte também as seções Usando escalares TensorBoard in PyTorch e Log nos PyTorchtutoriais. Como alternativa, você pode usar o TensorBoardX Summary Writer . LOG_DIR="/opt/ml/output/tensorboard" tensorboard_callback=torch.utils.tensorboard.writer.SummaryWriter(log_dir=LOG_DIR)
-
Para TensorFlow, use o retorno de chamada nativo para TensorBoard tf.keras.callbacks. TensorBoard
. LOG_DIR="/opt/ml/output/tensorboard" tensorboard_callback=tf.keras.callbacks.TensorBoard( log_dir=LOG_DIR, histogram_freq=1)
-
Para Transformers com PyTorch, você pode usar transformers.integrations. TensorBoardCallback
. Para Transformers com TensorFlow, use o
tf.keras.tensorboard.callback
e passe isso para o callback keras em transformers.dica
Também é possível usar um caminho de saída local de contêiner diferente. No entanto, emEtapa 2: criar um objeto estimador de SageMaker treinamento com a TensorBoard configuração de saída, você deve mapear os caminhos corretamente para que a SageMaker IA pesquise com sucesso o caminho local e salve os TensorBoard dados no bucket de saída do S3.
-
Para obter orientação sobre como modificar scripts de treinamento usando a biblioteca SageMaker Debugger Python, consulte. Adaptação do seu script de treinamento para registrar um hook
Etapa 2: criar um objeto estimador de SageMaker treinamento com a TensorBoard configuração de saída
Use o sagemaker.debugger.TensorBoardOutputConfig
ao configurar um estimador de estrutura de SageMaker IA. Essa API de configuração mapeia o bucket do S3 que você especifica para salvar TensorBoard dados com o caminho local no contêiner de treinamento (/opt/ml/output/tensorboard
). Passe o objeto do módulo para o parâmetro tensorboard_output_config
da classe do estimador. O trecho de código a seguir mostra um exemplo de preparação de um TensorFlow estimador com o TensorBoard parâmetro de configuração de saída.
nota
Este exemplo pressupõe que você use o SDK do SageMaker Python. Se você usa a SageMaker API de baixo nível, deve incluir o seguinte na sintaxe de solicitação da CreateTrainingJobAPI.
"TensorBoardOutputConfig": { "LocalPath": "/opt/ml/output/tensorboard", "S3OutputPath": "
s3_output_bucket
" }
from sagemaker.tensorflow import TensorFlow from sagemaker.debugger import TensorBoardOutputConfig # Set variables for training job information, # such as s3_out_bucket and other unique tags. ... LOG_DIR="/opt/ml/output/tensorboard" output_path = os.path.join( "
s3_output_bucket
", "sagemaker-output
", "date_str
", "your-training_job_name
" ) tensorboard_output_config = TensorBoardOutputConfig( s3_output_path=os.path.join(output_path, 'tensorboard
'), container_local_output_path=LOG_DIR ) estimator = TensorFlow( entry_point="train.py
", source_dir="src
", role=role
, image_uri=image_uri
, instance_count=1
, instance_type="ml.c5.xlarge
", base_job_name="your-training_job_name
", tensorboard_output_config=tensorboard_output_config
, hyperparameters=hyperparameters
)
nota
O TensorBoard aplicativo não fornece out-of-the-box suporte para trabalhos de ajuste de hiperparâmetros de SageMaker IA, pois a CreateHyperParameterTuningJob
API não está integrada à configuração TensorBoard de saída do mapeamento. Para usar o TensorBoard aplicativo para trabalhos de ajuste de hiperparâmetros, você precisa escrever código para fazer o upload de métricas para o Amazon S3 em seu script de treinamento. Depois que as métricas são carregadas em um bucket do Amazon S3, você pode carregar o bucket no TensorBoard aplicativo na SageMaker IA.