Запись данных в LMDB с Python очень медленная

Создание наборов данных для обучения сCaffe Я оба пытался использовать HDF5 и LMDB. Тем не менее, создание LMDB очень медленно, даже медленнее, чем HDF5. Я пытаюсь написать ~ 20000 изображений.

Я делаю что-то ужасно неправильно? Есть ли что-то, о чем я не знаю?

Это мой код для создания LMDB:

DB_KEY_FORMAT = "{:0>10d}"
db = lmdb.open(path, map_size=int(1e12))
    curr_idx = 0
    commit_size = 1000
    for curr_commit_idx in range(0, num_data, commit_size):
        with in_db_data.begin(write=True) as in_txn:
            for i in range(curr_commit_idx, min(curr_commit_idx + commit_size, num_data)):
                d, l = data[i], labels[i]
                im_dat = caffe.io.array_to_datum(d.astype(float), label=int(l))
                key = DB_KEY_FORMAT.format(curr_idx)
                in_txn.put(key, im_dat.SerializeToString())
                curr_idx += 1
    db.close()

Как вы можете видеть, я создаю транзакцию для каждой 1000 изображений, потому что я думал, что создание транзакции для каждого изображения приведет к дополнительным расходам, но, похоже, это не сильно влияет на производительность.

Ответы на вопрос(3)

Ваш ответ на вопрос