BrainScript-eochSize i CNTK
Information om Python användare finns här.
Antalet etikettexempel (tensorer längs en dynamisk axel) i varje epok. i epochSize
CNTK är antalet etikettexempel varefter specifika ytterligare åtgärder vidtas, inklusive
- spara en kontrollpunktsmodell (träningen kan startas om härifrån)
- korsvalidering
- kontroll av inlärningsfrekvens
- minibatch-scaling
Observera att definitionen av antalet etikettexempel liknar antalet exempel som används för minibatchSize (minibatch_size_in_samples). Definitionen av epochSize
skiljer sig från definitionen av minitbatchSize
i den meningen att är epochSize
etikettexempel , inte indataexempel.
För sekventiella data är därför ett exempel ett enskilt objekt i en sekvens.
Därför refererar CNTK epochSize
inte till ett antal sekvenser, utan för sekvensobjekt över de sekvensetiketter som utgör minibatchen.
Lika viktigt är det etikettexempel , inte indataexempel, och antalet etiketter per sekvens är inte nödvändigtvis antalet indataexempel. Det är till exempel möjligt att ha en etikett per sekvens och att varje sekvens har många prover (i vilket fall epochSize
fungerar som antal sekvenser), och det är möjligt att ha en etikett per prov i en sekvens, i vilket fall epochSize
fungerar exakt som minibatchSize
i att varje prov (inte sekvens) räknas.
För mindre datamängdsstorlekar epochSize
anges ofta lika med datauppsättningens storlek. I BrainScript kan du ange 0 för att ange det. I Python kan du ange cntk.io.INFINITELY_REPEAT
för det. Endast i Python kan du ange den till cntk.io.FULL_DATA_SWEEP
den plats där bearbetningen stoppas efter en strömning av hela datastorleken.
För stora datamängder kanske du vill vägleda ditt val för epokerStorlek genom kontrollpunkter. Om du till exempel vill förlora högst 30 minuters beräkning vid strömavbrott eller nätverksfel vill du att en kontrollpunkt skapas ungefär var 30:e minut (från vilken träningen kan återupptas). Välj epochSize
att vara det antal exempel som tar cirka 30 minuter att beräkna.