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)