我对深度学习很陌生,在使用 caffe 深度学习网络时遇到一些问题。基本上,我没有找到任何文档来解释如何解决我现在正在处理的一系列问题。
请让我先解释一下我的情况。
我有数千张图像,我必须对它们进行一系列预处理操作。对于每个预处理操作,我必须将这些预处理图像保存为 4D 矩阵,并存储带有图像标签的向量。我会将此信息存储为 LMDB 文件,该文件将用作 caffe googlenet 深度学习的输入。
我尝试将图像保存为 .HD5 文件,但最终文件大小为 80GB,以我的内存无法处理。
那么,另一个选择是使用 LMDB 文件,对吧?我对这种文件格式很陌生,感谢您帮助我了解如何在 Matlab 中创建它们。基本上,我的菜鸟问题是:
1-这些 LMDB 文件的扩展名为 .MDB,对吗?这个扩展和microsoft access使用的一样吗?或者正确的格式是 .lmdb 并且它们不同?
2-我找到了创建 .mdb 文件的解决方案(https://github.com/kyamagu/matlab-leveldb https://github.com/kyamagu/matlab-leveldb),它是否创建caffe所需的文件格式?
3-对于caffe,我是否应该为标签创建一个.mdb 文件,为图像创建另一个.mdb 文件,或者两者都可以是同一.mdb 文件的字段?
4-当我创建 .mdb 文件时,我必须标记数据库字段。我可以将一个字段标记为图像,将其他字段标记为标签吗? caffe能理解哪个字段的意思吗?
5- 该功能的作用是什么(在https://github.com/kyamagu/matlab-leveldb https://github.com/kyamagu/matlab-leveldb)database.put('key1','value1')和database.put('key2','value2')做什么?我是否必须将 4 维矩阵保存在一个字段中,并将标签向量保存在另一字段中?
LMDB 文件和 MS Access 文件之间没有联系。
在我看来,你有两个选择:
- 使用“convert_imageset”工具 - 它位于 caffe 中的 tools 文件夹下,可将图像文件和标签列表转换为 lmdb。
- 使用“图像数据层”代替“数据层”作为网络的输入。这种类型的图层将包含图像文件名和标签列表的文件作为源,因此您不必构建数据库(训练的另一个好处 - 您可以使用随机播放选项并获得稍微更好的训练结果)
为了使用图像数据层,只需将图层类型从 Data 替换为 ImageData 即可。源文件是文件的路径,每行包含图像文件的路径和以空格分隔的标签。例如:
/path/to/filnename.png 23
如果您想对数据进行一些预处理而不将预处理后的文件保存到磁盘,您可以使用 caffe 提供的转换(镜像和裁剪)(请参阅此处了解信息http://caffe.berkeleyvision.org/tutorial/data.html http://caffe.berkeleyvision.org/tutorial/data.html)或实现你自己的DataTransformer
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)