【caffe-Windows】以mnist为例lmdb格式数据
前言
前面介紹的案例都是leveldb的格式,但是比較流行和實用的格式是lmdb,原因從此網站摘取
- 它們都是鍵/值對(Key/Value Pair)嵌入式數據庫管理系統編程庫。
- 雖然lmdb的內存消耗是leveldb的1.1倍,但是lmdb的速度比leveldb快10%至15%,更重要的是lmdb允許多種訓練模型同時讀取同一組數據集。
- 因此lmdb取代了leveldb成為Caffe默認的數據集生成格式。
以下步驟均為在E:\CaffeDev-GPU\caffe-master下實施
第一步
確保路徑E:\CaffeDev-GPU\caffe-master\examples\mnist下存在從mnist官網下載的四個文件,我在mnist下新建了一個mnist文件夾,把文件丟進去了
并在E:\CaffeDev-GPU\caffe-master\examples\mnist文件夾下新建bat文件創建訓練集create_minist_trainlmdb.bat,內容如下:
E:\CaffeDev-GPU\caffe-master\Build\x64\Debug\convert_mnist_data.exe ./mnist/train-images-idx3-ubyte ./mnist/train-labels-idx1-ubyte ./mnist_train_lmdb pause接下來創建測試集create_minist_testlmdb.bat,內容如下: E:\CaffeDev-GPU\caffe-master\Build\x64\Debug\convert_mnist_data.exe ./mnist/t10k-images-idx3-ubyte ./mnist/t10k-labels-idx1-ubyte ./mnist_test_lmdb pause或者跟我們前面建立leveldb一樣,建立一個bat,內容如下:
set DATA=../../data/mnist set TOOLS=../../Build/x64/DebugREM set BACKEND=leveldb set BACKEND=lmdbecho "Creating %BACKEND%..."rd /s /q "mnist_train_%BACKEND%" rd /s /q "mnist_test_%BACKEND%""%TOOLS%/convert_mnist_data.exe" %DATA%/train-images-idx3-ubyte %DATA%/train-labels-idx1-ubyte mnist_train_%BACKEND% --backend=%BACKEND% "%TOOLS%/convert_mnist_data.exe" %DATA%/t10k-images-idx3-ubyte %DATA%/t10k-labels-idx1-ubyte mnist_test_%BACKEND% --backend=%BACKEND%echo "Done."pause第二步
運行建立訓練集的bat,出現我們的第一個問題
原因在于內存問題,打開caffe.sln,然后修改convert_mnist_data.cpp第101行
原始值設置內存為1T,然而我們的內存并沒這么大,所以改小一點,差不多100M多一點吧
改完以后重新編譯此cpp文件,然后再去運行前面建立訓練集和測試集的bat文件
第三步
運行create_minist_trainlmdb.bat會出現
如果你原來有mnist_train_lmdb這個文件夾記得刪掉,否則會出現
因為我們寫bat的時候并未檢測這個文件夾是否存在,只是想單純建立這個文件夾,用來存lmdb數據,所以會出現mkdir應該就是make dir失敗。
如果我們使用第三個bat就不會出現這個問題了,一目了然
總結
以上是生活随笔為你收集整理的【caffe-Windows】以mnist为例lmdb格式数据的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 微信亲属卡消费对方知道吗?亲属卡有有效期
- 下一篇: 卡卡贷代还信用卡财务处理中稳吗?多久到账