Я пытаюсь использовать caffe
для распознавания звука, но не может найти документ для его формата ввода.
Я хочу использовать leveldb
Таким образом, я должен создать ключ и значение для каждой записи, которая является парой строки метки и массива байтов данных.
Кажется, что ни один документ не описывает это, и после того, как я нашел значение написано Datum.SerializeToString()
Я не могу найти где Datum
это и потом потеряно.
Кто-нибудь знает, как конвертировать записи без изображений в leveldb
записи для caffe
? Спасибо!
Объект Datum определяется с помощью protobuf. Посмотреть здесь:
https://github.com/BVLC/caffe/blob/master/src/caffe/proto/caffe.proto#L30-L41
Генерирует файл caffe.pb.h
в .build_release/src/caffe/proto
с классом Datum
, Вы можете взглянуть туда, чтобы понять, как работает этот объект.
leveldb
, lmdb
а также HDF5
В настоящее время основные форматы для подачи данных в Caffe. MemoryData
Слой также позволяет вводить данные в память, поэтому можно использовать любой формат ввода и использовать интерфейсы Caffe на python или c ++ для заполнения больших двоичных объектов данных.
Если вы уже настроены на leveldb
, этот обсуждение вопросов кофе может быть полезным.
Ниже приведен пример заполнения leveldb
с питоном. Требуется Пикаф и Пливель. Это адаптировано из проблемы с кофе Сообщение от Zackory. Это не характерно для изображений, если вы представляете каждый пример в форме CxHxW, где любой или все могут быть равны 1:
import caffe
db = plyvel.DB('train_leveldb/', create_if_missing=True, error_if_exists=True, write_buffer_size=268435456)
wb = db.write_batch()
count = 0
for file in dataset:
mat = # load numpy array from file
# Load matrix into datum object
datum = caffe.io.array_to_datum(mat)
wb.put('%08d_%s' % (count, file), datum.SerializeToString())
count += 1
# Write to db in regular intervals
if count % 1000 == 0:
# Write batch of images to database
wb.write()
del wb
wb = db.write_batch()
# Write last batch of images
if count % 1000 != 0:
wb.write()
Я считаю построение lmdb намного проще. lmdb
пример Вот.