2

Ich bin neu in Caffe. Danke Jungs!in Caffe Prototxt-Datei. Was macht die TRAIN- und TEST-Phase?

in https://github.com/BVLC/caffe/blob/master/src/caffe/proto/caffe.proto

sah ich 1 uncommented Enum variable Phase. Es hat 2 Optionen TRAIN und TEST.

enum Phase { 
    TRAIN = 0; 
    TEST = 1; 
} 

Wie haben sie funktioniert? Ich habe kürzlich ein Modell gesehen, das auch diese 2 Phase hat. die .prototxt-Datei sieht wie folgt aus:

name: "CIFAR10_full" 
layer { 
    name: "cifar" 
    type: "Data" 
    top: "data" 
    top: "label" 
    data_param { 
    source: "CIFAR-10/cifar10_train_lmdb" 
    backend: LMDB 
    batch_size: 200 
    } 
    transform_param { 
    mirror: true 
    } 
    include: { phase: TRAIN } 
} 
layer { 
    name: "cifar" 
    type: "Data" 
    top: "data" 
    top: "label" 
    data_param { 
    source: "CIFAR-10/cifar10_test_lmdb" 
    backend: LMDB 
    batch_size: 100 
    } 
    transform_param { 
    mirror: false 
    } 
    include: { phase: TEST } 
} 

Kann ich von der TRAIN-Phase zur TEST-Phase wechseln? Wo ist der Schalter?

Antwort

4

während des Trainings (dh Ausführung von $CAFFE_ROOT/tools/caffe train [...]) kann caffe zwischen Trainingsphasen und Testphasen wechseln: Während der Trainingsphase werden die Parameter geändert, während in der Testphase die Parameter festgelegt sind und das Modell nur den Feed ausführt Beispiele weiterleiten, um die aktuelle Leistung des Modells zu schätzen.
Es ist ganz natürlich, zwei verschiedene Datensätze für Training und Tests zu verwenden, und deshalb verwenden Sie die verschiedenen phase Werte.

Sie können mehr über die Zug-/Testiterationen here lesen.

+2

Danke Shai! Du bist wirklich mein Erretter. Du hast ein Dutzend meiner Fragen beantwortet. – Long