Condividi tramite


BrainScript epochSize in CNTK

Per gli utenti Python, vedere qui.

Numero di campioni di etichetta (tensori lungo un asse dinamico) in ogni periodo. In epochSize CNTK è il numero di campioni di etichetta dopo i quali vengono eseguite azioni aggiuntive specifiche, tra cui

  • salvataggio di un modello di checkpoint (il training può essere riavviato da qui)
  • convalida incrociata
  • controllo della frequenza di apprendimento
  • minibatch-scaling

Si noti che la definizione del numero di campioni di etichetta è simile al numero di campioni usati per minibatchSize (minibatch_size_in_samples). La definizione di epochSize differisce dalla definizione di nel senso che epochSize è campioni di minitbatchSizeetichetta, non esempi di input.

Quindi, soprattutto, per i dati sequenziali, un campione è un singolo elemento di una sequenza. Di conseguenza, CNTK nonepochSize fa riferimento a una serie di sequenze, ma a elementi di sequenza tra le etichette di sequenza che costituiscono il minibatch.

Altrettanto importante, sono esempi di etichette , non campioni di input e il numero di etichette per sequenza non è necessariamente il numero di campioni di input. È possibile, ad esempio, avere un'etichetta per sequenza e per ogni sequenza avere molti campioni (nel qual caso epochSize agisce come il numero di sequenze) ed è possibile avere un'etichetta per campione in una sequenza, nel qual caso epochSize agisce esattamente come minibatchSize in quel campione (non sequenza) viene conteggiato.

Per le dimensioni del set di dati più piccole, epochSize viene spesso impostato uguale alle dimensioni del set di dati. In BrainScript è possibile specificare 0 per indicare che. In Python è possibile specificare cntk.io.INFINITELY_REPEAT tale valore. Solo in Python, è anche possibile impostarlo su cntk.io.FULL_DATA_SWEEP dove l'elaborazione verrà arrestata dopo un passaggio dell'intera dimensione dei dati.

Per i set di dati di grandi dimensioni, è possibile guidare la scelta per epochSize eseguendo il checkpoint. Ad esempio, se si desidera perdere al massimo 30 minuti di calcolo in caso di interruzione dell'alimentazione o di glitch di rete, è necessario creare un checkpoint ogni 30 minuti (da cui è possibile riprendere il training). Scegliere epochSize di essere il numero di campioni che richiedono circa 30 minuti per il calcolo.