Caffe: Wie bekomme ich die Phase einer Python-Ebene?

8

Ich habe eine "Python" layer "myLayer" in caffe erstellt und benutze sie im net train_val.prototxt Ich füge die Ebene wie folgt ein:

%Vor%

Nun, meine Schicht nimmt nur an der TRAIN ing Phase des Netzes teil,
Wie kann ich das in der setup -Funktion meiner Ebene wissen?

%Vor%

PS,
Ich habe diese Frage auch in der Caffe-Nutzergruppe Google veröffentlicht. Ich werde udpdate wenn etwas dort erscheint.

    
Shai 31.12.2015, 17:35
quelle

2 Antworten

6

Dies ist eine sehr gute Problemumgehung, aber wenn Sie nur phase als Parameter übergeben möchten, können Sie jetzt auf die Phase als Attribut der Ebene zugreifen. Diese Funktion wurde vor nur 6 Tagen mit Ссылка zusammengeführt.

Spezifisches Commit: Ссылка

Mit dieser neuen Funktion müssen Sie nur das Attribut self.phase verwenden. Zum Beispiel können Sie Folgendes tun:

%Vor%     
gcucurull 10.05.2016, 12:33
quelle
6

Wie von galloguille hervorgehoben, stellt caffe nun phase der Python-Layer-Klasse aus. Diese neue Funktion macht diese Antwort ein wenig überflüssig. Dennoch ist es nützlich, über die param_str in der Caffe-Python-Ebene zu wissen, um andere Parameter an die Ebene zu übergeben.

Ursprüngliche Antwort:

AFAIK gibt es keine triviale Möglichkeit, die Phase zu bekommen. Man kann jedoch beliebige Parameter vom Netz-Prototxt an Python übergeben. Dies kann mit den Parametern param_str von python_param geschehen.
Hier ist, wie es gemacht wird:

%Vor%

In Python erhalten Sie param_str in der Funktion setup des Layers:

%Vor%     
Shai 04.01.2016 10:13
quelle