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:
Nun, meine Schicht nimmt nur an der TRAIN
ing Phase des Netzes teil,
Wie kann ich das in der setup
-Funktion meiner Ebene wissen?
PS,
Ich habe diese Frage auch in der Caffe-Nutzergruppe Google veröffentlicht. Ich werde udpdate wenn etwas dort erscheint.
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:
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.
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:
In Python erhalten Sie param_str
in der Funktion setup
des Layers:
Tags und Links python neural-network deep-learning caffe pycaffe