2016-06-17 13 views
-4

Ich möchte eine prototxt-Datei mit Python bearbeiten. Ich muss einfach die Quelle von einem Verzeichnis zu einem anderen wechseln. Gibt es einen einfachen Weg, um das Netz neu zu definieren und die gesamte Datei neu schreiben zu müssen?Edit Prototxt-Datei von Python

Zum Beispiel in meiner prototxt Datei habe ich

layer { 
    name: "data" 
    type: "Data" 
    top: "data" 
    top: "label" 
    include { 
    phase: TRAIN 
    } 
    transform_param { 
    mirror: true 
    crop_size: 227 
    mean_file: "data/ilsvrc12/imagenet_mean.binaryproto" 
    } 
    data_param { 
    source: "examples/imagenet/ilsvrc12_train_lmdb" 
    batch_size: 256 
    backend: LMDB 
    } 
} 

und ich möchte nur das Feld ‚Quelle‘ ändern. Dies ist von einem relativ langen Netto-Def (hier ist nur ein typisches Beispiel, ich habe mein eigenes net def), so dass nicht jedes Feld wie in den Beispielen coffe manuell eingeben würde würde mich viel Zeit sparen

Dank

+0

müssten Sie die Datei lesen/analysieren, die Änderung vornehmen und dann alles zurückschreiben. Wenn Sie die Datei an Ort und Stelle ändern, müssten Sie genau die gleiche Anzahl an Zeichen schreiben, die Sie entfernen, oder Sie riskieren, die gesamte Datei zu beschädigen. –

Antwort

1

Ich vermute, dass Sie es leichter hätten, wenn Sie die Befehlszeile Ihres Betriebssystems verwenden. UNIX (Linux) hat gute Editoren (sed, awk, usw.). Lassen Sie das Betriebssystem die Datei öffnen, ändern und für Sie neu schreiben.

Der Befehl, den Sie erstellen müssen, würde Quelle finden: und ersetzen Sie den Rest der Zeile mit einer Zeichenfolge, die Sie bereitstellen.

Der anwendbare Python beinhaltet:

import os 
os.system("<your command>") 

Auch this SO Frage sehen.

+0

Danke, das werde ich wohl machen, ich kann sie mit gedit vom Terminal bearbeiten, also könnte das die einfachste Lösung sein – jerpint