

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á.

# Definir intervalos de hiperparâmetros
<a name="automatic-model-tuning-define-ranges"></a>

Este guia mostra como usar SageMaker APIs para definir intervalos de hiperparâmetros. Também fornece uma lista de tipos de escalonamento de hiperparâmetros que você pode usar.

A escolha de hiperparâmetros e intervalos afeta significativamente o desempenho do seu trabalho de ajuste. O ajuste de hiperparâmetros encontra os melhores valores de hiperparâmetros para o seu modelo ao pesquisar em uma [faixa](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_HyperParameterTrainingJobDefinition.html#sagemaker-Type-HyperParameterTrainingJobDefinition-HyperParameterRanges) de valores que você especifica para cada hiperparâmetro ajustável. Você também pode especificar até 100 [hiperparâmetros estáticos](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_HyperParameterTrainingJobDefinition.html#sagemaker-Type-HyperParameterTrainingJobDefinition-StaticHyperParameters) que não mudam ao longo do trabalho de ajuste. Você pode usar até 100 hiperparâmetros no total (estático\$1ajustável). Para obter orientação sobre como escolher hiperparâmetros e intervalos, consulte [Práticas recomendadas para o ajuste de hiperparâmetros](automatic-model-tuning-considerations.md). Você também pode usar o ajuste automático para encontrar as configurações ideais do trabalho de ajuste. Para mais informações, consulte a seção **Ajuste automático** a seguir.

**nota**  
SageMaker O AI Automatic Model Tuning (AMT) pode adicionar hiperparâmetros adicionais que contribuem para o limite total de 100 hiperparâmetros. Atualmente, para passar sua métrica objetiva para o trabalho de ajuste para uso durante o treinamento, a SageMaker IA adiciona `_tuning_objective_metric` automaticamente.

## Hiperparâmetros estáticos
<a name="automatic-model-tuning-define-ranges-static"></a>

Use hiperparâmetros estáticos para os seguintes casos:    Se você tiver conhecimento prévio que o oriente a selecionar um valor constante.   Se você não quiser explorar uma faixa de valores para os hiperparâmetros.   Por exemplo, você pode usar o AMT para ajustar seu modelo usando `param1` (um parâmetro ajustável) e `param2` (um parâmetro estático). Se você fizer isso, use um espaço de pesquisa `param1` que esteja entre dois valores e passe `param2` como um hiperparâmetro estático, da seguinte maneira:

```
param1: ["range_min","range_max"]
param2: "static_value"
```

Os hiperparâmetros estáticos têm a seguinte estrutura:

```
"StaticHyperParameters": {
    "objective" : "reg:squarederror",
    "dropout_rate": "0.3"
}
```

Você pode usar a SageMaker API da Amazon para especificar pares de valores-chave no [StaticHyperParameters](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_HyperParameterTrainingJobDefinition.html#sagemaker-Type-HyperParameterTrainingJobDefinition-StaticHyperParameters)campo do `HyperParameterTrainingJobDefinition` parâmetro que você passa para a [CreateHyperParameterTuningJob](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateHyperParameterTuningJob.html)operação.

## Hiperparâmetros dinâmicos
<a name="automatic-model-tuning-define-ranges-dynamic"></a>

Você pode usar a SageMaker API para definir [intervalos de hiperparâmetros](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_HyperParameterTrainingJobDefinition.html#sagemaker-Type-HyperParameterTrainingJobDefinition-HyperParameterRanges). Especifique os nomes dos hiperparâmetros e as faixas de valores no campo `ParameterRanges` do parâmetro `HyperParameterTuningJobConfig` que você passa para a operação [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateHyperParameterTuningJob.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateHyperParameterTuningJob.html). 

O campo `ParameterRanges` tem três subcampos: categórico, inteiro e contínuo. Você pode definir até 30 hiperparâmetros ajustáveis totais (categóricos \$1 inteiros \$1 contínuos) para pesquisar. 

**nota**  
Cada hiperparâmetro categórico pode ter no máximo 30 valores diferentes.

Os hiperparâmetros dinâmicos têm a seguinte estrutura:

```
"ParameterRanges": {
    "CategoricalParameterRanges": [
        {
            "Name": "tree_method",
            "Values": ["auto", "exact", "approx", "hist"]
        }
    ],
    "ContinuousParameterRanges": [
        {
            "Name": "eta",
            "MaxValue" : "0.5",
            "MinValue": "0",
            "ScalingType": "Auto"
        }
    ],
    "IntegerParameterRanges": [
        {
            "Name": "max_depth",
            "MaxValue": "10",
            "MinValue": "1",
            "ScalingType": "Auto"
        }
    ]
}
```

Se você criar um trabalho de ajuste com uma `Grid` estratégia, só poderá especificar valores categóricos. Não é necessário fornecer o `MaxNumberofTrainingJobs`. Esse valor é inferido do número total de configurações que podem ser produzidas a partir de seus parâmetros categóricos. Se especificado, o valor de `MaxNumberOfTrainingJobs` deve ser igual ao número total de combinações categóricas distintas possíveis.

## Ajuste automático
<a name="automatic-model-tuning-define-ranges-autotune"></a>

Para economizar tempo e recursos pesquisando intervalos de hiperparâmetros, recursos ou métricas objetivas, o ajuste automático pode adivinhar automaticamente os valores ideais para alguns campos de hiperparâmetros. Use o ajuste automático para encontrar valores ideais para os seguintes campos:
+ **[ParameterRanges](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_HyperParameterTuningJobConfig.html#sagemaker-Type-HyperParameterTuningJobConfig-ParameterRanges)**— Os nomes e intervalos de hiperparâmetros que um trabalho de ajuste pode otimizar.
+ **[ResourceLimits](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ResourceLimits.html)**— O máximo de recursos a serem usados em um trabalho de ajuste. Esses recursos podem incluir o número máximo de trabalhos de treinamento, o runtime máximo de um trabalho de ajuste e o número máximo de trabalhos de treinamento que podem ser executados ao mesmo tempo.
+ **[TrainingJobEarlyStoppingType](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_HyperParameterTuningJobConfig.html#sagemaker-Type-HyperParameterTuningJobConfig-TrainingJobEarlyStoppingType)**— Uma bandeira que interrompe um trabalho de treinamento se um trabalho não estiver melhorando significativamente em relação a uma métrica objetiva. O padrão é habilitado. Para obter mais informações, consulte [Interromper trabalhos de treinamento precocemente](automatic-model-tuning-early-stopping.md).
+ **[RetryStrategy](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_HyperParameterTrainingJobDefinition.html#sagemaker-Type-HyperParameterTrainingJobDefinition-RetryStrategy)**— O número de vezes que você deve tentar novamente um trabalho de treinamento. Valores diferentes de zero para `RetryStrategy` podem aumentar a probabilidade de seu trabalho ser concluído com sucesso.
+ **[Strategy](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_HyperParameterTuningJobConfig.html#sagemaker-Type-HyperParameterTuningJobConfig-Strategy)**: Especifica como o ajuste de hiperparâmetros escolhe as combinações de valores de hiperparâmetros a serem usadas no trabalho de treinamento que ele inicia.
+ **[ConvergenceDetected](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ConvergenceDetected.html)**— Uma bandeira para indicar que o ajuste automático do modelo (AMT) detectou a convergência do modelo.

Para usar o ajuste automático, faça o seguinte:

1. Especifique o hiperparâmetro e um valor de exemplo no `AutoParameters` campo da [ParameterRanges](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ParameterRanges.html)API.

1. Habilite o ajuste automático.

O AMT determinará se seus hiperparâmetros e valores de exemplo são elegíveis para ajuste automático. Os hiperparâmetros que podem ser usados no ajuste automático são automaticamente atribuídos ao tipo de intervalo de parâmetros apropriado. Em seguida, o AMT usa `ValueHint` para selecionar um intervalo ideal para você. Você pode usar a API `DescribeHyperParameterTrainingJob` para visualizar os intervalos.

O exemplo a seguir mostra como configurar um trabalho de ajuste que usa o ajuste automático. No exemplo de configuração, o hiperparâmetro `max_depth` contém `ValueHint` um valor de exemplo de `4`.

```
config = {
    'Autotune': {'Mode': 'Enabled'},
    'HyperParameterTuningJobName':'my-autotune-job',
    'HyperParameterTuningJobConfig': {
        'HyperParameterTuningJobObjective': {'Type': 'Minimize', 'MetricName': 'validation:rmse'},
        'ResourceLimits': {'MaxNumberOfTrainingJobs': 5, 'MaxParallelTrainingJobs': 1},
        'ParameterRanges': {       
            'AutoParameters': [
                {'Name': 'max_depth', 'ValueHint': '4'}
            ]
        }
    },
    'TrainingJobDefinition': {
    .... }
```

Continuando com o exemplo anterior, um trabalho de ajuste é criado depois que a configuração anterior é incluída em uma chamada para a API `CreateHyperParameterTuningJob`. Em seguida, o autotune converte o hiperparâmetro max\$1depth em hiperparâmetro. AutoParameters `IntegerParameterRanges` A resposta a seguir de uma API `DescribeHyperParameterTrainingJob` mostra que os melhores `IntegerParameterRanges` para `max_depth` estão entre `2` e `8`.

```
{
    'HyperParameterTuningJobName':'my_job',
    'HyperParameterTuningJobConfig': {
        'ParameterRanges': {
            'IntegerParameterRanges': [
                {'Name': 'max_depth', 'MinValue': '2', 'MaxValue': '8'},
            ],
        }
    },
    'TrainingJobDefinition': {
        ...
    },
    'Autotune': {'Mode': 'Enabled'}
    
}
```

## Tipos de escalabilidade de hiperparâmetros
<a name="scaling-type"></a>

Para intervalos de hiperparâmetros inteiros e contínuos, você pode escolher a escala que deseja que o ajuste de hiperparâmetros utilize. Por exemplo, para pesquisar o intervalo de valores, você pode especificar um valor para o campo `ScalingType` do intervalo de hiperparâmetros. Você pode escolher entre os seguintes tipos de escalonamento de hiperparâmetros:

Auto  
SageMaker O ajuste de hiperparâmetros de IA escolhe a melhor escala para o hiperparâmetro.

Linear  
O ajuste de hiperparâmetros pesquisa os valores no intervalo de hiperparâmetros usando uma escala linear. Normalmente, você escolhe isso se o intervalo de todos os valores, do menor ao mais alto, for relativamente pequeno (dentro de uma ordem de magnitude). A busca uniforme de valores dentro da faixa proporciona uma exploração razoável de todo o intervalo.

Logarítmica  
O ajuste de hiperparâmetros pesquisa os valores no intervalo de hiperparâmetros usando uma escala logarítmica.  
A escalabilidade logarítmica funciona apenas para intervalos que têm valores maiores que 0.  
Escolha a escala logarítmica quando estiver pesquisando uma faixa que abrange várias ordens de magnitude.   
Por exemplo, se você estiver ajustando um modelo [Ajustar um modelo de aprendizagem linear](linear-learner.md) e especificar um intervalo de valores entre 0,0001 e 1,0 para o `learning_rate` hiperparâmetro, considere o seguinte: Pesquisar uniformemente em uma escala logarítmica fornece uma amostra melhor de todo o intervalo do que pesquisar em uma escala linear. Isso ocorre porque pesquisar em uma escala linear dedicaria, em média, 90% do seu orçamento de treinamento apenas aos valores entre 0,1 e 1,0. Como resultado, isso deixa apenas 10% do seu orçamento de treinamento para valores entre 0,0001 e 0,1.

`ReverseLogarithmic`  
O ajuste de hiperparâmetros pesquisa os valores no intervalo de hiperparâmetros usando uma escala logarítmica reversa. A escala logarítmica reversa é compatível somente para intervalos contínuos de hiperparâmetros. Ela não é compatível para intervalos de hiperparâmetros inteiros.  
Escolha a escalabilidade logarítmica inversa ao pesquisar um intervalo muito sensível a pequenas alterações que sejam muito próximas de 1.  
A escalabilidade logarítmica inversa funciona apenas para intervalos que estão inteiramente dentro do intervalo 0<=x<1,0.

Para ver um exemplo de notebook que usa escalabilidade de hiperparâmetros, consulte esses exemplos de [hiperparâmetros do Amazon SageMaker AI](https://github.com/awslabs/amazon-sagemaker-examples/blob/master/hyperparameter_tuning) em. GitHub