2017-02-15 45 views
1

Я хочу прочитать данные от hdf5 файл и сделать увеличение данных.Как читать hdf5 с уровнем python в caffe и делать увеличение данных?

Я могу сделать увеличение данных в transform_param с зеркалом и обрезкой.

Однако, я не могу иметь transformation_param в слое HDF5Data - caffe не поддерживает это.

Я считаю, что это хороший способ написать слой python для его решения. Прочитайте данные из файла hdf5 и выполните увеличение данных одновременно.

Я прочитал некоторые соответствующие ответы, такие как «caffe data layer example step by step» и «What is a Python layer in caffe?»

я до сих пор не знаю, что некоторые детали, такие как, где я должен поставить письменный файл "*.py"? И как написать коды для увеличения данных?

ответ

0

Ваш уровень python *.py должен быть в вашем $PYTHONPATH.

Рассмотрите примеры слоев python в $CAFFE_ROOT/examples/pycaffe/layers , для пользовательских потерь и уровня данных python.

Рассмотрим особенности в $CAFFE_ROOT/examples/pycaffe/layers/pascal_multilabel_datalayers.py

Перед загружается следующая партия, вы можете сделать увеличение данных на лету.

Тогда в *.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 это имя файла и layer это имя класса.

+0

Спасибо за ответ! Я пробовал это и нашел «Check failed: registry.count (type) == 1 (0 против 1) Неизвестный тип слоя: Python '. Однако я перечислил (caffe.layer_type_list()) и нашел «python» в этом списке. Зачем? – egg

+0

Вы должны скомпилировать свой caffe с 'WITH_PYTHON_LAYER: = 1'. См. Http://stackoverflow.com/questions/41344168/what-is-a-python-layer-in-caffe?noredirect11&lq=1 для получения более подробной информации. – curio1729

+0

Я компилирую это. Я нахожу 'python', когда я запускаю 'list (caffe.layer_type_list())'. Может быть, кофе не может его найти? – egg