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

2024-01-01

我对深度学习很陌生,在使用 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 文件之间没有联系。

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

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

为了使用图像数据层,只需将图层类型从 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(使用前将#替换为@)

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

  • matlab中的正则逻辑回归代码

    我正在尝试正则化 LR 在 matlab 中使用以下公式很简单 成本函数 J theta 1 m sum y i log h x i 1 y i log 1 h x i lambda 2 m sum theta j 梯度 J theta t
  • 计算边界框重叠的百分比,用于图像检测器评估

    在测试大图像中的对象检测算法时 我们根据地面实况矩形给出的坐标检查检测到的边界框 根据 Pascal VOC 挑战 有这样的 如果预测的边界框重叠更多 则认为它是正确的 超过 50 带有真实边界框 否则边界框 被认为是误报检测 多次检测是
  • 理解高斯混合模型的概念

    我试图通过阅读在线资源来理解 GMM 我已经使用 K 均值实现了聚类 并且正在了解 GMM 与 K 均值的比较 以下是我的理解 如有错误请指出 GMM 类似于 KNN 在这两种情况下都实现了聚类 但在 GMM 中 每个簇都有自己独立的均值和
  • 从凸点获取角点

    我编写了算法来提取图像中显示的点 它们形成凸形 我知道它们的顺序 如何从这些点中提取角点 顶部 3 个和底部 3 个 我正在使用opencv 如果你已经有了物体的凸包 并且该包包含角点 那么你需要做的就是简化包直到它只有 6 个点 有很多方
  • 神经网络 - 我的网络似乎训练得很好,但在分类报告中它是完全随机的

    我正在训练一个模型来对 3 种类型的车辆进行分类 一切看起来都很顺利 直到我尝试用我的模型预测任何事情 预测结果是完全随机的 我使用 3 个类别的 15000 张图像 每个类别 5000 个 进行训练 并使用 3 个类别的 6000 个图像
  • 访问图像的 Windows“标签”元数据字段

    我正在尝试进行一些图像处理 所以现在我正在尝试读取图像 exif 数据 有 2 个内置函数可用于读取图像的 exif 数据 问题是我想读取图像标签 exifread and imfinfo这两个函数都不显示图像标签 Is there any
  • glpk.LPX 向后兼容性?

    较新版本的glpk没有LPXapi 旧包需要它 我如何使用旧包 例如COBRA http opencobra sourceforge net openCOBRA Welcome html 与较新版本的glpk 注意COBRA适用于 MATL
  • 了解 fminunc 参数和匿名函数、函数处理程序

    请多多包涵 问题在最后 我试图找出 fminunc 调用方式的差异 这个问题源于 Andrew Ng 在他的 Coursera 机器学习课程中的第 3 周材料 我正在回答这个问题 Matlab Andrew Ng 机器学习课程中 t cos
  • MATLAB 中的霍夫变换

    有谁知道如何使用霍夫变换来检测二值图像中最强的线 A zeros 7 7 A 6 10 18 24 36 38 41 1 使用 rho theta 格式 其中 theta 以 45 为步长 从 45 到 90 以及如何在 MATLAB 中显
  • “Desort”向量(撤消排序)

    在Matlab中 sort返回排序后的向量和索引向量 显示哪个向量元素已移动到以下位置 v ix sort u Here v是一个包含所有元素的向量u 但已排序 ix是一个向量 显示每个元素的原始位置v in u 使用 Matlab 的语法
  • 在matlab中绘制给定区域内(两个圆之间)的向量场

    我想在 Matlab 中绘制下面的向量场 u cos x x 0 y y 0 v sin x x 0 y y 0 我可以在网格中轻松完成 例如 x 和 y 方向从 2 到 2 x 0 2 y 0 1 x y meshgrid 2 0 2 2
  • Matlab 的 imresize 函数中用于插值的算法是什么?

    我正在使用 Matlab Octaveimresize 对给定的二维数组重新采样的函数 我想了解如何使用特定的插值算法imresize works 我在Windows上使用八度 e g A 1 2 3 4 是一个二维数组 然后我使用命令 b
  • 检测数据集中线性行为的算法

    我已经发布了一个关于对数据集的一部分进行多项式拟合的算法 https stackoverflow com q 17595932 2320757前一段时间收到一些建议去做我想做的事 但我现在面临另一个问题 我尝试应用答案中建议的想法 我的目标
  • 在 HSV 颜色空间内定义组织学图像掩模的颜色范围(Python、OpenCV、图像分析):

    为了根据颜色将组织学切片分成多个层 我修改了 OpenCV 社区提供的一些广泛分布的代码 1 我们的染色程序用不同的颜色标记组织横截面的不同细胞类型 B 细胞为红色 巨噬细胞为棕色 背景细胞核为蓝色 I m interested in se
  • 辍学训练

    如何对由 dropout 产生的许多薄层进行平均 在测试阶段要使用哪些重量 我对这个问题真的很困惑 因为每个细化层都会学习一组不同的权重 那么反向传播是为每个稀疏网络单独完成的吗 这些细化网络之间的权重究竟是如何共享的 因为在测试时仅使用一
  • Matlab Builder JA - 将 Matlab 编译成 Java jar - 免费版本?

    请记住 我对 Matlab 一无所知 Matlab Builder JA 允许开发人员构建 Matlab 应用程序并将其导出到 Java jar 中 太棒了 我只需要生成一个 jar 然后就可以从其他 java 代码中使用它 有谁知道单罐包
  • Swift 3:如何访问48字节CFData中matrix_float3x3的值?

    我正在尝试访问内在矩阵answer https stackoverflow com a 48159895 9296667 通过运行下面的命令 我能够得到一个 48 字节的任意对象 https developer apple com docu
  • 从 numpy 数组中删除连续的 RGB 值

    我最初根据灰度图像的初始数组创建了一个子数组 从 numpy 数组中删除连续数字 https stackoverflow com questions 50743769 deleting consecutive numbers from a
  • opencv - 在图像中绘制轮廓

    我正在尝试在图像周围绘制轮廓 我可以看到找到了轮廓 但无法绘制轮廓 轮廓的颜色似乎是两种 黑色和白色 颜色中的一种 import cv2 import numpy as np import matplotlib pyplot as plt
  • 读出 Matlab / Octave fft2() 函数输出的特定点

    我正在熟悉 Octave 及其功能fft2 在此玩具示例中 我的目标是生成以下 256 x 256 png 图像的 2D DFT 为了能够轻松理解输出 我尝试将此图像转换为 256 x 256 图像 消除颜色信息 Im imread cir

随机推荐