Python lmdb
최근 leveldb 에서 lmdb 로 이동 하려 면 python 으로 이 루어 져 야 합 니 다.caffe 를 살 펴 보면 db 에 저 장 된 것 은 모두 datum format 이기 때문에 datum 은 중간 중심 이 되 었 다.
python 으로 levedb 함 수 를 호출 합 니 다. 여 기 는 lmdb documens 입 니 다.
write
db_img = lmdb.Environment(lmdb_img_name,map_size=int(1e12))
txn_img = db_img.begin(write=True,buffers=True)
datum_img = getImgDatum(img_path)
txn_img.put(key,datum_img.SerializeToString())
txn_img.commit()
db_img.close()
여기, lmdb 의 instance, db 를 먼저 만 듭 니 다.img。 그리고 txn 을 시작 합 니 다.put 저장, 마지막 으로 commt () 에 주의 하 십시오.그렇지 않 으 면 저장 되 지 않 았 습 니 다. 생 성 된 lmdb 파일 을 확인 하면 알 수 있 습 니 다.마지막, close ()
여기 서 datum 을 생 성 하 는 것 은 caffe 자체 함수 로 io. py 를 만 드 는 것 으로 caffe. io. array 라 고 합 니 다.to_datum, array 를 datum 으로 변환 합 니 다.
Note:
datum 을 저장 할 때 는 반드시 datum. SerializeToString () 을 사용 하여 string () 으로 만들어 야 합 니 다.
세그먼트 쓰기
for ind,obj in enumerate(list):
if ind%100=0:
txn.commit()
txn = env.begin(write=True)
txn.commit()
env.close()
매번 commt 후, txn = env. begin (write = True) for loop 바깥 마지막 commt 를 다시 정의 해 야 합 니 다.
Read
img_lmdb = imdb.open("name")
txn= img_lmdb.begin()
cursor = txn.cursor()
cursor.iternext()
key = cursor.key()
value = cursor.value()
datum = caffe_pb2.Datum()
datum.ParseFromString(value)
Note:
cursor 첫 번 째 는 비어 있 고, iternext () 다음 은 첫 번 째 값 입 니 다.
순환 하 다.
txn = … cursor = txn.cursor() for ( idx, (key, value) ) in enumerate(cursor): …………….
순환 해서 찾 을 수 있어 요.
* * 전재 또는 인용 출처, ayst 123 칼럼 (http://blog.csdn.net/ayst123/article/details/44077903감사합니다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.