1

В Caffe, когда вы определяете свои входы для NN в файле protobuf, вы можете вводить «данные» и «метку». Я предполагаю, что метка содержит ожидаемый результат для данных обучения (что обычно считается значением y в литературе машинного обучения).Что такое «ярлык» в Caffe?

Моя проблема в том, что в файле caffe.proto метка определяется как скаляр (int или long). По крайней мере, с данными я могу установить его в массив numpy, потому что он принимает значения String. Если я тренируюсь для более чем одного вывода предсказания, как я могу передать его как массив?

Или я ошибаюсь? Что такое label? Для чего это? И как я могу передать значения y в caffe?

ответ

3

Основным вариантом использования caffe была классификация изображений: назначение единственной целочисленной метки для каждого входного изображения. Таким образом, структура данных «данных» резервирует пространство для 4D-массива с плавающей запятой (партии изображений из трех каналов) и целую «метку» на изображение в партии.

Это ограничение можно легко преодолеть, используя входной уровень данных HDF5.
См., Например, this answer.

+0

Так что, используя HDF5 вместо LMDB, решает проблему? Разве это не произвольно? – zimio

+1

@zimio lmdb специально разработан. к классификации. hdf5 более гибкий – Shai