2016-12-01 5 views
1

Scheint, this related PR ist jetzt tot, gibt es eine Umgehungslösung, early stopping in Caffe zu verwenden? Vielleicht mit Python auf Caffe?Vorzeitiger Halt in Caffe

+0

können Sie immer ctrl - c stoppen caffe und machen es dump die aktuelle "solverstate". – Shai

+0

@Shai Ich brauche nicht Start/Stop-Funktionalität, aber ich brauche Stop-by-Kriterium. – mrgloom

+0

Was für ein frühes Anhaltekriterium möchten Sie? Genau wie die PR's? Wenn dies der Fall ist, können Sie einfach einen Zähler und einen Schwellenwert im Solver hinzufügen, um zu überprüfen, ob das Training gestoppt werden soll. – Dale

Antwort

0

Ein erster Teil ist einfach manuell zu machen: Lassen Sie Ihren Validierungsfehler überwachen und stoppen Sie dann, wenn dieser sich nicht viel ändert (unter einem Schwellenwert). Dann betrachten wir den Zustand mit dem niedrigsten Validierungsfehler als das "optimale" Netzwerk.

Das eigentliche Problem ist dann, von dem vollen Train + Val-Datensatz von dort zu profitieren. Es gibt zwei grundlegende Strategien:

  1. umschulen Ihr Netzwerk mit dem Zug + val für die gleiche Anzahl von Epoche OR für die gleiche Anzahl von Daten (dh lassen die Anzahl der minibatches berechnen, die den „optimalen“ Zustand zu erreichen, wurden verwendet, um und setze die Anzahl der Durchgänge so, dass die gleiche Anzahl von Minibatches (mit gleicher Größe ...) durch das Netzwerk gehen
  2. Lass das "optimale" Netzwerk dann die Validierungsdaten hinzufügen und das Training fortsetzen. Wenn du das gleiche erreichst Fehlerrate wie zuvor, lassen Sie aufhören. Sonst, lassen Sie einfach eine a priori Anzahl von Epochen beheben.
0

Sie könntenanwenden 210 bis Standard Caffe RC 1.0.0. Es fügt einen optionalen early_stop_param in den Solver hinzu. Sie können die Test-Netzwerk-ID, die Länge der Versuche zur Verbesserung des Testverlustes und ein "Überspringen" angeben, so dass nicht jede Iteration versucht wird. Disclosure: Ich bin einer der Entwickler.