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 SageMaker consiste em duas etapas principais: preparar um script de treinamento e configurar um objeto SageMaker estimador do Python. SageMaker SDK 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 TensorBoard
-
Um SageMaker domínio configurado com a Amazon VPC em sua AWS conta.
Para obter instruções sobre como configurar um domínio, consulte Integrar o SageMaker domínio da Amazon 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 on SageMaker. 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 em SageMaker.
-
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 SageMaker para pesquisar com êxito o caminho local e salvar 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. Adaptando seu roteiro de treinamento para registrar um gancho
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 SageMaker estrutura. Essa configuração API 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 SageMaker PythonSDK. Se você usar o nível baixo SageMaker API, inclua o seguinte na sintaxe da solicitação do. 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 SageMaker hiperparâmetros, pois não CreateHyperParameterTuningJob
APIestá integrado à 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 em. SageMaker