Dela via


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 epochSizeetikettexempel , inte indataexempel.

För sekventiella data är därför ett exempel ett enskilt objekt i en sekvens. Därför refererar CNTK epochSizeinte 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.