2017-02-15 2 views
1

Ich möchte Daten von hdf5 Datei lesen und Datenerweiterung tun.Wie hdf5 mit Python-Layer in Caffe lesen und Datenerweiterung tun?

Ich kann Daten Augmentation in transform_param mit Spiegel und Crop tun.

Allerdings kann ich transformation_param in einer HDF5Data Schicht nicht haben - caffe unterstützt dies nicht.

Ich denke, es wäre eine gute Möglichkeit, eine Python-Schicht zu schreiben, um es zu lösen. Lesen Sie Daten aus der hdf5-Datei und führen Sie gleichzeitig eine Datenerweiterung durch.

Ich habe einige relevante Antworten wie „caffe data layer example step by step“ und „What is a Python layer in caffe?

lesen

Ich weiß noch nicht, einige Details wie, wo soll ich "*.py" die schriftliche Datei setzen? Und wie schreibe ich die Codes für die Datenerweiterung?

Antwort

0

Sie Python-Schicht *.py sollte in Ihrem $PYTHONPATH sein.

Betrachten Sie Beispiele für Python-Layer in $CAFFE_ROOT/examples/pycaffe/layers , für benutzerdefinierte Python-Verlust und Datenschicht.

Betrachten besonders in $CAFFE_ROOT/examples/pycaffe/layers/pascal_multilabel_datalayers.py

Noch bevor nächste Charge geladen, können Sie die Daten Augmentation on the fly tun.

Dann in *.prototxt

layer { 
    name: "data" 
    type: "Python" 
    top: "data" 
    top: "label" 
    python_param { 
    module: "pascalcontext_layers" 
    layer: "PASCALContextSegDataLayer" 
    param_str: "{\'context_dir\': \'../../data/pascal-context\', \'seed\': 1337, \'split\': \'train\', \'voc_dir\': \'../../data/pascal\'}" 
    } 
} 

module ist der Dateiname und layer ist der Klassenname.

+0

Danke für die Antwort! Ich habe es ausprobiert und 'Check failed: registry.count (type) == 1 (0 vs. 1) Unbekannter Layer-Typ: Python' gefunden. Allerdings liste ich (caffe.layer_type_list()) 'und finde' python 'in dieser Liste. Warum? – egg

+0

Sie müssen Ihre Datei mit 'WITH_PYTHON_LAYER: = 1' kompilieren. Siehe http://stackoverflow.com/questions/41344168/what-is-a-python-layer-in-caffe?noredirect=1&lq=1 für Details – curio1729

+0

Ich habe das kompilieren. Ich finde "Python", wenn ich 'list (caffe.layer_type_list())' starte. Vielleicht kann Caffe es einfach nicht finden? – egg

Verwandte Themen