在caffe中一般会把数据转为lmdb或者leveldb格式,再做训练,加速训练过程。
如何读取lmdb文件呢?比如需要获知某个lmdb文件的样本数量。
在python下,比较简单,生成lmdb后,可以用如下的代码获取:
import lmdb
env = lmdb.open("lmdb_path")
txn = env.begin()
print txn.stat()['entries]
那么对于C/C++,则需要参考lmdb.h文件给出的一系列API函数,lmdb.h一般存在于/usr/include/lmdb.h,在该文件中有非常详细的说明,仔细说明会对lmdb文件有比较深刻的认识。这里列出使用C/C++读取lmdb中样本数量的代码
#include <iostream>
#include "lmdb.h"
int main(){
MDB_env* mdb_env_;
mdb_env_create(&mdb_env_);
mdb_env_open(mdb_env_,"lmdb_path",0,0664);
MDB_stat mdb_stat_;
MDB_env_stat(mdb_env_,&mdb_stat_);
std::cout<<mdb_stat_.ms_entries<<std::endl;
}