2015-07-24 8 views
2

Извините, у меня вопрос по использованию caffe для данных hd? Я пытаюсь запустить пример на данных mnist Csv Kaggle со следующими шагамииспользовать caffe для обучения Lenet с данными CSV

  1. использования h5py преобразовать его в h5 данных. (Я использую caffe-example.py для преобразования)

  2. Затем измените файл lenet_train_test_prototxt и подготовьте его. Я совершенно не понимаю этого шага.

Единственное изменение, которое я сделал здесь

layer { 
    name: "mnist" 
    type: "HDF5Data" 
    top: "data" 
    top: "label" 
    include { 
    phase: TRAIN 
    } 
    transform_param { 
    scale: 0.00390625 
    } 
    data_param { 
    source: "data/mnist_train_h5.txt" 
    batch_size: 64 
    } 
} 

как изменить lenet_train_test_prototxt в соответствии с данными? Или также есть некоторые другие файлы, которые мне нужно изменить? Журнал ошибок

enF0724 18:21:11.052737 79373 hdf5_data_layer.cpp:76] Check failed: !this->layer_param_.has_transform_param() HDF5Data does not transform data. 

> *** Check failure stack trace: *** 
>  @  0x7fe8188bbdaa (unknown) 
>  @  0x7fe8188bbce4 (unknown) 
>  @  0x7fe8188bb6e6 (unknown) 
>  @  0x7fe8188be687 (unknown) 
>  @  0x7fe818caec10 caffe::HDF5DataLayer<>::LayerSetUp() 
>  @  0x7fe818c520a3 caffe::Net<>::Init() 
>  @  0x7fe818c53e12 caffe::Net<>::Net() 
>  @  0x7fe818c0ba20 caffe::Solver<>::InitTrainNet() 
>  @  0x7fe818c0c9c3 caffe::Solver<>::Init() 
>  @  0x7fe818c0cb96 caffe::Solver<>::Solver() 
>  @   0x40c8f0 caffe::GetSolver<>() 
>  @   0x406541 train() 
>  @   0x404a81 main 
>  @  0x7fe817dcdec5 (unknown) 
>  @   0x40502d (unknown) 
>  @    (nil) (unknown) Aborted (core dumped)ter code here 

ответ

1

Я предполагаю, что у вас есть файл 'data/mnist_train_h5.hd5' данных один hdf5.

  1. Как видно из сообщения об ошибке вы получили, "HDF5Data" слой не поддерживает преобразование данных. В частности, вы не можете масштабировать данные по слою.
    Таким образом, любые преобразования, которые вы хотите иметь, вы должны применить их самостоятельно во время создания 'data/mnist_train_h5.hd5'.

  2. "HDF5Data" слой не принимает data_param, а hdf5_data_param с параметром source указания список из hd5 бинарных файлов. В вашем случае вы должны подготовить дополнительный текст файл 'data/mnist_train_h5.txt' с одной строкой:

данные/mnist_train_h5.hd5

Этот текстовый файл будет сказать Caffe читать 'data/mnist_train_h5.hd5'.

Полученный слой должен выглядеть следующим образом:

layer { 
    name: "mnist" 
    type: "HDF5Data" 
    top: "data" 
    top: "label" 
    hdf5_data_param { 
    source: "data/mnist_train_h5.txt" 
    batch_size: 64 
    } 
    include { 
    phase: TRAIN 
    } 
} 
+0

Спасибо за ваш ответ! У меня есть один вопрос относительно преобразования данных. Вот мой код: [http://luoyetx.me/2015/04/little-caffe/]. Пожалуйста, см. Его первый фрагмент кода (слишком долго, чтобы вставить здесь). Я не уверен, какие дополнительные преобразования данных мне нужно сделать, кроме того, что часть кода. Большое спасибо! – user864128

+1

Вы имели в виду 'source:" mnist_train_h5.txt "' вместо 'source:" data/mnist_train_h5.hd5 "?? – mrgloom

+0

@mrgloom спасибо за обнаружение этой ошибки! - поправил его сейчас. – Shai