используйте caffe для обучения Lenet с данными CSV
Извините, у меня есть вопрос об использовании caffe для hd-данных? Я пытаюсь запустить пример на данных Kaggle mnist csv со следующими шагами
-
Используйте
h5py
, чтобы преобразовать его в данные h5. (Я использую caffe-example.py преобразовать) -
Затем измените 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 ответ:
Я предполагаю, что у вас есть один файл данных hdf5
'data/mnist_train_h5.hd5'
.
Как видно из сообщения об ошибке, слой
"HDF5Data"
не поддерживает преобразование данных. В частности, вы не можете масштабировать данные по слою.
Таким образом, любые преобразования, которые вы хотите иметь, вы должны применить их сами во время создания'data/mnist_train_h5.hd5'
.
"HDF5Data"
слой не принимаетdata_param
, а скорееhdf5_data_param
с параметромsource
, задающим список двоичного файла hd5 файлы. В вашем случае вы должны подготовить дополнительный текстовый файл'data/mnist_train_h5.txt'
с одной строкой:Data / 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 } }