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á.
Interrompa trabalhos de treinamento iniciados precocemente por um trabalho de ajuste de hiperparâmetros quando eles não estiverem melhorando significativamente, conforme medido pela métrica objetiva. A interrupção precoce de trabalhos de treinamento pode ajudar a reduzir o tempo de computação e ajuda a evitar o sobreajuste do seu modelo. Para configurar um trabalho de ajuste de hiperparâmetros para interromper trabalhos de treinamento antecipadamente, siga um destes procedimentos:
-
Se você estiver usando o AWS SDK para Python (Boto3),
TrainingJobEarlyStoppingType
defina o campo do objeto que você usa para configurar o trabalhoHyperParameterTuningJobConfig
de ajuste.AUTO
-
Se você estiver usando o Amazon SageMaker Python SDK
, defina o early_stopping_type
parâmetro do HyperParameterTunerobjeto como. Auto
-
No console do Amazon SageMaker AI, no fluxo de trabalho Create hyperparameter tuning job, em Early stop, escolha Auto.
Para ver um exemplo de caderno que demonstra como usar a parada antecipada, consulte https://github.com/awslabs/amazon-sagemaker-examples/blob/master/hyperparameter_tuning/image_classification_early_stopping/hpo_image_classification_early_stopping.ipynbhpo_image_classification_early_stopping.ipynb
SageMaker Para obter informações sobre como usar os cadernos de amostra em uma instância de caderno, consulte Cadernos de exemplo de acesso.
Como funciona a interrupção precoce
Quando você ativa a parada antecipada para uma tarefa de ajuste de hiperparâmetros, a SageMaker IA avalia cada tarefa de treinamento que a tarefa de ajuste de hiperparâmetros inicia da seguinte forma:
-
Após cada epoch de treinamento, obtenha o valor da métrica objetiva.
-
Calcule a média de execução da métrica objetiva de todos os trabalhos de treinamento anteriores até o mesmo epoch e, em seguida, calcule a mediana de todas as médias de execução.
-
Se o valor da métrica objetiva para o trabalho de treinamento atual for pior (maior ao minimizar ou menor ao maximizar a métrica do objetivo) do que o valor médio das médias de execução da métrica do objetivo para trabalhos de treinamento anteriores até a mesma época, a SageMaker IA interrompe o trabalho de treinamento atual.
Algoritmos que oferecem apoio para interrupção precoce
Para oferece apoio à interrupção precoce, um algoritmo deve emitir métricas objetivas para cada epoch. Os seguintes algoritmos de SageMaker IA integrados oferecem suporte à interrupção antecipada:
-
Algoritmo de Aprendizagem linear: Compatível somente se você usar
objective_loss
como métrica objetiva.
nota
Essa lista de algoritmos internos que oferecem apoio para interrupção precoce é atual desde 13 de dezembro de 2018. Outros algoritmos integrados poderão oferece apoio à interrupção precoce no futuro. Se um algoritmo emitir uma métrica que possa ser usada como uma métrica objetiva para um trabalho de ajuste de hiperparâmetros (preferencialmente uma métrica de validação), ele oferecerá compatibilidade com a interrupção precoce.
Para usar a interrupção precoce com seu próprio algoritmo, você deve escrever esse algoritmo de modo que ele emita o valor da métrica objetiva após cada epoch. A seguinte lista mostra como você pode fazer isso em diferentes estruturas:
- TensorFlow
-
Use a classe
tf.keras.callbacks.ProgbarLogger
. Para obter informações, consulte tf.keras.callbacks. ProgbarLoggerAPI. - MXNet
-
Use a
mxnet.callback.LogValidationMetricsCallback
. Para obter informações, consulte mxnet.callback APIs. - Chainer
-
Estenda o Chainer usando a classe
extensions.Evaluator
. Para obter informações, consulte a API Chainer.Training.Extensions.Evaluator. - PyTorch e Spark
-
Não há compatibilidade de alto nível. Você deve escrever explicitamente seu código de treinamento para que ele calcule as métricas objetivas e as grave nos logs após cada epoch.