LMDB文件以及它们如何用于caffe深度学习网络

mad*_*mad 4 matlab image-processing computer-vision deep-learning caffe

我是深度学习的新手,我在使用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矩阵保存在一个字段中,将标签矢量保存在另一个字段中?

Tal*_*rom 7

LMDB文件和MS Access文件之间没有任何关联.

在我看来,你有两个选择:

  1. 使用"convert_imageset"工具 - 它位于tools文件夹下的caffe中,用于转换图像文件列表并将标签转换为lmdb.
  2. 而不是"数据层"使用"图像数据层"作为网络的输入.这种类型的图层采用带有图像文件名和标签列表的文件作为源,因此您不必构建数据库(培训的另一个好处 - 您可以使用随机播放选项并获得稍微更好的培训结果)

为了使用图像数据层,只需将图层类型从Data替换为ImageData.源文件是文件的路径,该文件在每行中包含图像文件的路径和按空格分隔的标签.例如:

/path/to/filnename.png 23
Run Code Online (Sandbox Code Playgroud)

如果您想对数据进行一些预处理而不将预处理文件保存到磁盘,则可以使用caffe(镜像和裁剪)提供的转换(有关信息,请参阅此处http://caffe.berkeleyvision.org/tutorial/data.html)或实施自己的DataTransformer.