def save_to_lmdb(images, labels, lmdb_file):
if not os.path.exists(lmdb_file):
batch_size = 256
lmdb_env = lmdb.open(lmdb_file, map_size=int(1e12))
lmdb_txn = lmdb_env.begin(write=True)
item_id = 0
datum = caffe_pb2.Datum()
for i in range(images.shape[0]):
im = cv2.imread(images[i])
if im is None:
continue
im = cv2.resize(im, (IM_HEIGHT, IM_WIDTH))
datum.channels = im.shape[2]
datum.height = im.shape[0]
datum.width = im.shape[1]
datum.data = im.tobytes()
datum.label = labels[i]
keystr = '{:0>8d}'.format(item_id)
lmdb_txn.put(keystr, datum.SerializeToString())
# write batch
if (item_id + 1) % batch_size == 0:
lmdb_txn.commit()
lmdb_txn = lmdb_env.begin(write=True)
print('converted {} images'.format(item_id + 1))
item_id += 1
# write last batch
if (item_id + 1) % batch_size != 0:
lmdb_txn.commit()
print('converted {} images'.format(item_id + 1))
print('Generated ' + lmdb_file)
else:
print(lmdb_file + ' already exists')
convert_facescrub_data.py 文件源码
python
阅读 20
收藏 0
点赞 0
评论 0
评论列表
文章目录