Hiperparâmetros de detecção de objetos - Amazon SageMaker

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

Hiperparâmetros de detecção de objetos

Na solicitação CreateTrainingJob, é especificado o algoritmo de treinamento que você deseja utilizar. Você também pode definir hiperparâmetros específicos de algoritmo que são usados para ajudar a estimar os parâmetros do modelo a partir de um conjunto de dados de treinamento. A tabela a seguir lista os hiperparâmetros fornecidos pela Amazon SageMaker para treinar o algoritmo de detecção de objetos. Para obter mais informações sobre como funciona o treinamento de objetos, consulte Como funciona a detecção de objetos.

Nome do parâmetro Descrição
num_classes

O número de classes de saída. Esse parâmetro especifica as dimensões da rede de saída e geralmente é definido como o número de classes do conjunto de dados.

Obrigatório

Valores válidos: inteiro positivo

num_training_samples

O número de exemplos de treinamento no conjunto de dados de entrada.

nota

Se esse valor não corresponder ao número de amostras do conjunto de treinamento, o comportamento do parâmetro lr_scheduler_step será indefinido, e a precisão do treinamento distribuído poderá ser afetada.

Obrigatório

Valores válidos: inteiro positivo

base_network

A arquitetura de rede básica a ser usada.

Opcional

Valores válidos: 'vgg-16' ou 'resnet-50'

Valor padrão: 'vgg-16'

early_stopping

True para usar a lógica de interrupção precoce durante o treinamento. False para não usá-la.

Opcional

Valores válidos: True ou False

Valor padrão: False

early_stopping_min_epochs

O número mínimo de epochs que devem ser executados antes que a lógica de interrupção precoce possa ser chamada. Usado apenas quando early_stopping = True.

Opcional

Valores válidos: inteiro positivo

Valor padrão: 10

early_stopping_patience

O número de epochs a aguardar antes de terminar o treinamento, se nenhuma melhoria, conforme definido pelo hiperparâmetro early_stopping_tolerance, for feita na métrica relevante. Usado apenas quando early_stopping = True.

Opcional

Valores válidos: inteiro positivo

Valor padrão: 5

early_stopping_tolerance

O valor de tolerância que a melhoria relativa em validation:mAP, a precisão média da média (mAP), deve exceder para evitar a interrupção precoce. Se a proporção da alteração na mAP dividida pela melhor mAP anterior for menor que o conjunto de valores de early_stopping_tolerance, a interrupção precoce considerará que não há melhoria. Usado apenas quando early_stopping = True.

Opcional

Valores válidos: 0 ≤ flutuante ≤ 1

Valor padrão: 0.0

image_shape

O tamanho da imagem para imagens de entrada. Redimensionamos a imagem de entrada para uma imagem quadrada com esse tamanho. Convém usar 300 e 512 para um melhor desempenho.

Opcional

Valores válidos: número inteiro positivo ≥300

Padrão: 300

epochs

O número de epochs de treinamento.

Opcional

Valores válidos: inteiro positivo

Padrão: 30

freeze_layer_pattern

A expressão regular (regex) para congelamento de camadas na rede base. Por exemplo, se definirmos freeze_layer_pattern = "^(conv1_|conv2_).*", todas as camadas com um nome que contenha "conv1_" ou "conv2_" serão congeladas, o que significa que os pesos dessas camadas não serão atualizados durante o treinamento. Os nomes das camadas podem ser encontrados nos arquivos de símbolo da rede vgg16-symbol.json e resnet-50-symbol.json. Congelar uma camada significa que seus pesos não podem ser modificados ainda mais. Isso pode reduzir significativamente o tempo de treinamento em troca de perdas modestas de precisão. Tal técnica é comumente usada na aprendizagem de transferência, em que as camadas inferiores da rede básica não precisam ser treinadas novamente.

Opcional

Valores válidos: string

Padrão: nenhuma camada congelada.

kv_store

O modo de sincronização de atualização de peso usado para treinamento distribuído. Os pesos podem ser atualizados de forma síncrona ou assíncrona entre as máquinas. As atualizações síncronas geralmente oferecem mais precisão do que as assíncronas, mas podem ser mais lentas. Consulte o MXNet tutorial de treinamento distribuído para obter detalhes.

nota

Esse parâmetro não é aplicável a treinamentos em uma máquina só.

Opcional

Valores válidos: 'dist_sync' ou 'dist_async'

  • 'dist_sync': os gradientes são sincronizados após cada lote com todos os operadores. Com o 'dist_sync', agora batch-size significa o tamanho do lote usado em cada máquina. Portanto, se houver n máquinas e usarmos um tamanho de lote b, dist_sync se comportará como uma única máquina com tamanho de lote n*b.

  • 'dist_async': executa atualizações assíncronas. Os pesos são atualizados sempre que os gradientes são recebidos de qualquer máquina e as atualizações de peso são atômicas. No entanto, não há garantias sobre a ordem.

Padrão: -

label_width

A largura do rótulo para forçar preenchimento usado para sincronizar dados de treinamento e validação. Por exemplo, se uma imagem nos dados contiver no máximo 10 objetos e a anotação de cada objeto for especificada com 5 números, [class_id, left, top, width, height], label_width não deverá ser menor que (10*5 + comprimento da informações do cabeçalho). O comprimento das informações do cabeçalho é geralmente 2. Recomendamos o uso de um label_width um pouco maior para o treinamento, como 60 para esse exemplo.

Opcional

Valores válidos: um número inteiro positivo grande o suficiente para acomodar o maior comprimento de informações de anotação nos dados.

Padrão: 350

learning_rate

A taxa de aprendizagem inicial.

Opcional

Valores válidos: flutuante em (0, 1]

Padrão: 0.001

lr_scheduler_factor

O índice de redução da taxa de aprendizagem. Usado em conjunto com o parâmetro lr_scheduler_step, definido como lr_new = lr_old * lr_scheduler_factor.

Opcional

Valores válidos: flutuante em (0, 1)

Padrão: 0.1

lr_scheduler_step

Os epochs nos quais a taxa de aprendizagem deve ser reduzida. A taxa de aprendizagem é reduzida em lr_scheduler_factor em epochs listados em uma string delimitada por vírgula: "epoch1, epoch2, ...". Por exemplo, se o valor for definido como "10, 20" e o lr_scheduler_factor for definido como 1/2, a taxa de aprendizagem será reduzida pela metade após o 10° epoch e, em seguida, reduzida pela metade após o 20° epoch.

Opcional

Valores válidos: string

Padrão: string vazia

mini_batch_size

O tamanho do lote para treinamento. Em uma configuração de uma única máquina com várias GPUs, cada uma GPU manipula mini_batch_size num_gpu /amostras de treinamento. Para o treinamento com várias máquinas no modo dist_sync, o tamanho do lote real é mini_batch_size*número de máquinas. Um mini_batch_size grande geralmente resulta em um treinamento mais rápido, mas pode causar problemas de falta de memória. O uso da memória está relacionado às arquiteturas mini_batch_size, image_shape e base_network. Por exemplo, em uma única instância p3.2xlarge, o maior mini_batch_size sem um erro de falta de memória é 32 com base_network definido como "resnet-50" e um image_shape de 300. Com a mesma instância, você pode usar 64 como mini_batch_size com a rede básica vgg-16 e um image_shape de 300.

Opcional

Valores válidos: inteiro positivo

Padrão: 32

momentum

A dinâmica de sgd. Ignorado por outros otimizadores.

Opcional

Valores válidos: flutuante em (0, 1]

Padrão: 0.9

nms_threshold

O limite de supressão não máximo.

Opcional

Valores válidos: flutuante em (0, 1]

Padrão: 0.45

optimizer

Os tipos de otimizador. Para obter detalhes sobre os valores do otimizador, consulteMXNet. API

Opcional

Valores válidos: ['sgd', 'adam', 'rmsprop', 'adadelta']

Padrão: 'sgd'

overlap_threshold

O limite de sobreposição de avaliação.

Opcional

Valores válidos: flutuante em (0, 1]

Padrão: 0.5

use_pretrained_model

Indica se é necessário usar um modelo pré-treinado para treinamento. Se definido como 1, o modelo pré-treinado com arquitetura correspondente é carregado e usado para treinamento. Caso contrário, a rede é treinada do zero.

Opcional

Valores válidos: 0 ou 1

Padrão: 1

weight_decay

O coeficiente de degradação do peso para sgd e rmsprop. Ignorado por outros otimizadores.

Opcional

Valores válidos: flutuante em (0, 1)

Padrão: 0.0005