Hiperparâmetros de Classificação de imagens - 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 Classificação de imagens

Hiperparâmetros são parâmetros definidos antes de um modelo de machine learning começar a aprender. Os hiperparâmetros a seguir são compatíveis com o algoritmo de classificação de imagens SageMaker incorporado da Amazon. Consulte Ajustar um modelo de classificação de imagens para obter informações sobre o ajuste de hiperparâmetros de classificação de imagens.

Nome do parâmetro Descrição
num_classes

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.

Além da classificação de várias classes, a classificação de vários rótulos também é compatível. Consulte Interface de entrada/saída para o algoritmo de classificação de imagens para obter detalhes sobre como trabalhar com a classificação de vários rótulos com arquivos de manifesto aumentados.

Obrigatório

Valores válidos: inteiro positivo

num_training_samples

Número de exemplos de treinamento no conjunto de dados de entrada.

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

augmentation_type

O tipo de aumento dos dados. As imagens de entrada podem ser aumentadas de várias maneiras, conforme especificado abaixo.

  • crop: corta a imagem aleatoriamente e vira horizontalmente.

  • crop_color: além de cortar, três valores aleatórios no intervalo [-36, 36], [-50, 50] e [-50, 50] são adicionados aos canais de matiz, saturação e brilho respectivamente.

  • crop_color_transform: além de crop_color, transformações aleatórias são aplicadas à imagem, incluindo variações de taxa de proporção, corte e rotação. O ângulo de rotação máximo é 10 graus, a taxa de corte máxima é 0,1, e a taxa oscilante de proporção máxima é 0,25.

Opcional

Valores válidos: crop, crop_color ou crop_color_transform.

Valor padrão: nenhum valor padrão

beta_1

O beta1 para adam, que é a taxa de degradação exponencial para as estimativas do primeiro momento.

Opcional

Valores válidos: flutuante. Intervalo em [0, 1].

Valor padrão: 0.9

beta_2

O beta2 para adam, que é a taxa de degradação exponencial para as estimativas do segundo momento.

Opcional

Valores válidos: flutuante. Intervalo em [0, 1].

Valor padrão: 0.999

checkpoint_frequency

Período de armazenamento dos parâmetros do modelo (em número de epochs).

Observe que todos os arquivos do ponto de verificação são salvos como parte do arquivo de modelo final "model.tar.gz" e o upload deles é feito no S3 no local do modelo especificado. Isso aumenta o tamanho do arquivo de modelo proporcionalmente ao número de pontos de verificação salvos durante o treinamento.

Opcional

Valores válidos: inteiro positivo maior que epochs.

Valor padrão: nenhum valor padrão (Salva o ponto de verificação no epoch que possui a melhor precisão de validação)

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 de espera antes de concluir o treinamento, se nenhuma melhora tiver ocorrido na métrica relevante. Usado apenas quando early_stopping = True.

Opcional

Valores válidos: inteiro positivo

Valor padrão: 5

early_stopping_tolerance

Tolerância relativa para medir uma melhoria na métrica de validação de precisão. Se a relação entre a melhoria na precisão dividida pela melhor precisão 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

epochs

Número de epochs de treinamento.

Opcional

Valores válidos: inteiro positivo

Valor padrão: 30

eps

O épsilon para adam e rmsprop. Geralmente é definido como um valor baixo, para evitar a divisão por 0.

Opcional

Valores válidos: flutuante. Intervalo em [0, 1].

Valor padrão: 1e-8

gamma

O gama para rmsprop, o fator de degradação para a média móvel do gradiente quadrado.

Opcional

Valores válidos: flutuante. Intervalo em [0, 1].

Valor padrão: 0.9

image_shape

As dimensões da imagem de entrada, que é o mesmo tamanho da camada de entrada da rede. O formato é definido como "num_channels, altura, largura". A dimensão da imagem pode assumir qualquer valor, já que a rede pode lidar com variadas dimensões da entrada. No entanto, poderá haver restrições de memória se uma dimensão de imagem maior for usada. Os modelos pré-treinados só podem usar um tamanho de imagem de valor fixo de 224 x 224. Normalmente, as dimensões das imagens para classificação de imagens são de “3,224,224”. Isso é semelhante ao ImageNet conjunto de dados.

Para treinamento, se alguma imagem de entrada for menor que esse parâmetro em qualquer dimensão, o treinamento falhará. Se uma imagem for maior, uma parte da imagem será cortada, com a área recortada especificada por esse parâmetro. Se o hiperparâmetro augmentation_type for definido, será feito um corte aleatório; caso contrário, o corte será central.

Na inferência, as imagens de entrada são redimensionadas para image_shape, conforme utilização durante o treinamento. A taxa de proporção não é preservada, e as imagens não são cortadas.

Opcional

Valores válidos: string

Valor padrão: “3,224,224”

kv_store

Modo de sincronização das atualizações de peso durante o treinamento distribuído. As atualizações de peso podem ser feitas de maneira síncrona ou assíncrona nas máquinas. As atualizações síncronas geralmente oferecem mais precisão do que as assíncronas, mas podem ser mais lentas. Consulte o treinamento distribuído em MXNet para obter mais detalhes.

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

  • 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 o tamanho de lote b, o dist_sync se comportará como item local com o 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.

Opcional

Valores válidos: dist_sync ou dist_async

Valor padrão: nenhum valor padrão

learning_rate

A taxa de aprendizagem inicial.

Opcional

Valores válidos: flutuante. Intervalo em [0, 1].

Valor padrão: 0.1

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. Intervalo em [0, 1].

Valor padrão: 0.1

lr_scheduler_step

Os epochs nos quais a taxa de aprendizagem deve ser reduzida. Como explicado no parâmetro lr_scheduler_factor, a taxa de aprendizagem é reduzida pelo lr_scheduler_factor desses epochs. Por exemplo, se o valor for definido como "10, 20", a taxa de aprendizagem será reduzida pelo lr_scheduler_factor após o 10º epoch e novamente pelo lr_scheduler_factor após o 20ºepoch. Os epochs são delimitados por ",".

Opcional

Valores válidos: string

Valor padrão: nenhum valor padrão

mini_batch_size

O tamanho do lote para treinamento. Em uma GPU configuração múltipla de uma única máquina, cada uma GPU manipula amostras de treinamento mini_batch_size /num_gpu. 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. Consulte a MXNet documentação para obter mais detalhes.

Opcional

Valores válidos: inteiro positivo

Valor padrão: 32

momentum

A dinâmica sgd e nag, ignorada para outros otimizadores.

Opcional

Valores válidos: flutuante. Intervalo em [0, 1].

Valor padrão: 0.9

multi_label

Sinalizador a ser usado para classificação de vários rótulos, em que cada amostra pode receber vários rótulos. A precisão média em todas as classes é registrada.

Opcional

Valores válidos: 0 ou 1

Valor padrão: 0

num_layers

Número de camadas para a rede. Para dados com tamanho de imagem grande (por exemplo, 224x224 ImageNet), sugerimos selecionar o número de camadas do conjunto [18, 34, 50, 101, 152, 200]. Para dados com tamanho de imagem pequeno (por exemplo, 28x28CIFAR), sugerimos selecionar o número de camadas do conjunto [20, 32, 44, 56, 110]. O número de camadas em cada conjunto é baseado no ResNet papel. Para aprendizagem de transferência, o número de camadas define a arquitetura da rede de base e, portanto, só pode ser selecionado do conjunto [18, 34, 50, 101, 152, 200].

Opcional

Valores válidos: inteiro positivo em [18, 34, 50, 101, 152, 200] ou [20, 32, 44, 56, 110]

Valor padrão: 152

optimizer

O tipo de otimizador. Para obter mais detalhes sobre os parâmetros dos otimizadores, consulte. MXNet API

Opcional

Valores válidos: Um de sgd, adam, rmsprop ou nag.

Valor padrão: sgd

precision_dtype

A precisão dos pesos usados para treinamento. O algoritmo pode usar precisão simples (float32) ou meia precisão (float16) para os pesos. Usar a meia-precisão para pesos resulta em consumo de memória reduzido.

Opcional

Valores válidos: float32 ou float16

Valor padrão: float32

resize

O número de pixels no lado mais curto de uma imagem depois de redimensioná-la para treinamento. Se o parâmetro não estiver definido, os dados de treinamento serão usados sem redimensionamento. O parâmetro deve ser maior que os componentes de largura e altura de image_shape para evitar falhas no treinamento.

Obrigatório ao usar tipos de conteúdo de imagem

Opcional ao usar o tipo de conteúdo RecordIO

Valores válidos: inteiro positivo

Valor padrão: nenhum valor padrão

top_k

Relata a precisão dos itens top-k durante o treinamento. Esse parâmetro deve ser maior que 1, já que a precisão do treinamento dos itens top-1 é a mesma que a do treinamento normal que já foi relatada.

Opcional

Valores válidos: inteiro positivo maior que 1.

Valor padrão: nenhum valor padrão

use_pretrained_model

Sinalizador para usar o modelo pré-treinado para treinamento. Se definido como 1, o modelo pré-treinado e o número correspondente de camadas serão carregados e usados para o treinamento. Somente as camadas FC superiores são reinicializadas com pesos aleatórios. Caso contrário, a rede é treinada do zero.

Opcional

Valores válidos: 0 ou 1

Valor padrão: 0

use_weighted_loss

Sinalizador para usar a perda de entropia cruzada ponderada para classificação de vários rótulos (usada somente quando multi_label = 1), em que os pesos são calculados com base na distribuição de classes.

Opcional

Valores válidos: 0 ou 1

Valor padrão: 0

weight_decay

O coeficiente de decaimento de peso para sgd e nag, ignorado para outros otimizadores.

Opcional

Valores válidos: flutuante. Intervalo em [0, 1].

Valor padrão: 0.0001