Compartilhar via


BrainScript epochSize em CNTK

Para usuários do Python, consulte aqui.

O número de exemplos de rótulo (tensores ao longo de um eixo dinâmico) em cada época. O epochSize CNTK é o número de exemplos de rótulo após os quais ações adicionais específicas são executadas, incluindo

  • salvar um modelo de ponto de verificação (o treinamento pode ser reiniciado a partir daqui)
  • validação cruzada
  • controle de taxa de aprendizagem
  • minibatch-scaling

Observe que a definição do número de amostras de rótulo é semelhante ao número de amostras usadas para minibatchSize (minibatch_size_in_samples). A definição de epochSize difere da definição de minitbatchSize , no sentido que epochSize são exemplos de rótulo , não amostras de entrada.

Portanto, importante, para dados sequenciais, um exemplo é um item individual de uma sequência. Portanto, CNTK nãoepochSize se refere a várias sequências, mas aos itens de sequência nos rótulos de sequência que constituem a minibatch.

Igualmente importante, são exemplos de rótulo , não amostras de entrada e o número de rótulos por sequência não é necessariamente o número de amostras de entrada. É possível, por exemplo, ter um rótulo por sequência e para cada sequência ter muitos exemplos (nesse caso epochSize , atua como número de sequências), e é possível ter um rótulo por exemplo em uma sequência, nesse caso epochSize , age exatamente como minibatchSize em que cada amostra (não sequência) é contada.

Para tamanhos menores do conjunto de dados, epochSize geralmente é definido como o tamanho do conjunto de dados. No BrainScript, você pode especificar 0 para denotar isso. No Python, você pode especificar cntk.io.INFINITELY_REPEAT para isso. Somente no Python, você também pode defini-lo para cntk.io.FULL_DATA_SWEEP onde o processamento será interrompido após uma passagem do tamanho de dados inteiro.

Para conjuntos de dados grandes, convém orientar sua escolha para epochSize por ponto de verificação. Por exemplo, se você quiser perder no máximo 30 minutos de computação em caso de uma falha de energia ou de rede, você gostaria que um ponto de verificação fosse criado a cada 30 minutos (dos quais o treinamento pode ser retomado). Escolha epochSize ser o número de exemplos que leva cerca de 30 minutos para ser computada.