在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;
}