caffe学习笔记1
1. 写 lmdb 格式的数据:
def write():
# 在创建一个叫lmdb_data的文件夹并写入数据
lmdb_file = 'lmdb_data'
batch_size = 256
# 写入前把 Write 置为 True
lmdb_env = lmdb.open(lmdb_file,map_size = int(1e12))
lmdb_txn = lmdb_env.begin(write = True)
# 用一个for循环将一个batchsize的数据写入
for x in range(batch_size):
# define data and label=id
data = np.ones((3,64,64), np.uint8)
label = x
# 以字典形式存储
datum = caffe.io.array_to_datum(data, label)
keystr = "{:0>8d}".format(x)
# 数据序列化
lmdb_txn.put(keystr, datum.SerializeToString())
# 保存,生成data.mdb 和 lock.mdb两个文件
lmdb_txn.commit()
2. 读 lmdb 格式的数据:
def read():
lmdb_env = lmdb.open('lmdb_data')
lmdb_txt = lmdb_env.begin()
datum = caffe_pb2.Datum()
for key, value in lmdb_txt.cursor():
# 去序列化
datum.ParseFromString(value)
label = datum.label
data = caffe.io.datum_to_array(datum)
print(label)
print(data)