Caffe 入坑 1 :lmdb格式數據讀寫

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)

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章