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.