簡體   English   中英

LMDB文件以及它們如何用於caffe深度學習網絡

[英]LMDB files and how they are used for caffe deep learning network

我是深度學習的新手,我在使用caffe深度學習網絡時遇到了一些問題。 基本上,我沒有找到任何文件解釋我如何解決我現在正在處理的一系列問題和問題。

請讓我先解釋一下我的情況。

我有成千上萬的圖像,我必須對它們進行一系列預處理操作。 對於每個預處理操作,我必須將這些預處理的圖像保存為4D矩陣,並且還存儲具有圖像標簽的矢量。 我將這些信息存儲為LMDB文件,用作caffe googlenet深度學習的輸入。

我試圖將我的圖像保存為.HD5文件,但最終文件大小為80GB,這是我無法處理的內存。

所以,另一個選擇是使用LMDB文件,對嗎? 我是這種文件格式的新手,感謝您幫助理解如何在Matlab中創建它們。 基本上,我的菜鳥問題是:

1-這些LMDB文件擴展名為.MDB,對嗎? 這個擴展名是否與microsoft access一樣? 或正確的格式是.lmdb,它們是不同的?

2-我找到了創建.mdb文件的解決方案( https://github.com/kyamagu/matlab-leveldb ),它是否創建了caffe所需的文件格式?

3-對於caffe,我是否必須為標簽和其他圖像創建一個.mdb文件,或者兩者都可以是同一.mdb文件的字段?

4-當我創建.mdb文件時,我必須標記數據庫字段。 我可以將一個字段標記為圖像而將其他標記為標簽嗎? caffe能理解哪個領域意味着什么?

5-函數(在https://github.com/kyamagu/matlab-leveldb中 )database.put('key1','value1')和database.put('key2','value2')有什么作用? 我是否必須將我的4-d矩陣保存在一個字段中,將標簽矢量保存在另一個字段中?

LMDB文件和MS Access文件之間沒有任何關聯。

在我看來,你有兩個選擇:

  1. 使用“convert_imageset”工具 - 它位於tools文件夾下的caffe中,用於轉換圖像文件列表並將標簽轉換為lmdb。
  2. 而不是“數據層”使用“圖像數據層”作為網絡的輸入。 這種類型的圖層采用帶有圖像文件名和標簽列表的文件作為源,因此您不必構建數據庫(培訓的另一個好處 - 您可以使用隨機播放選項並獲得稍微更好的培訓結果)

為了使用圖像數據層,只需將圖層類型從Data替換為ImageData。 源文件是文件的路徑,該文件在每行中包含圖像文件的路徑和按空格分隔的標簽。 例如:

/path/to/filnename.png 23

如果要對數據進行一些預處理而不將預處理文件保存到磁盤,則可以使用caffe(鏡像和裁剪)提供的轉換(有關信息,請參閱此處http://caffe.berkeleyvision.org/tutorial/data.html )或實現自己的DataTransformer

Caffe不使用LevelDB - 但它使用 來自Symas的LMDB'Lightning'數據庫

您可以嘗試使用這個 Matlab LMDB包裝器,我個人沒有使用LMDB和Matlab的經驗,但是有一個很好的庫可以用Python做這個: py -lmdb

LMDB數據庫是一個Key / Value數據庫(類似於Java中的HashMap或Python中的dict)。 為了存儲4D矩陣,您需要了解Caffe用於將圖像保存為LMDB格式的約定。

這意味着將圖像轉換為LMDB for Caffe的最佳方法是使用Caffe進行此操作。

Caffe中有關於如何將圖像轉換為LMDB的示例 - 我會嘗試重復它們,然后修改腳本以使用圖像。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM