问题标签 [lmdb]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
317 浏览

python - 如何在 python lmdb 中设置 MDB_NOTLS 模式

在 lmdb 文档中:“MDB_NOTLS 模式是独占使用的,它允许读取事务在线程之间自由迁移,并允许单个线程维护多个读取事务。这使得大多数情况下可以无忧无虑地使用读取事务,例如在使用 gevent 时。”

但是没有手册如何在python中设置它。

我试过了:

这样对吗?

0 投票
2 回答
590 浏览

neural-network - 将特征提取到文本文件

按照 http://caffe.berkeleyvision.org/gathered/examples/feature_extraction.html 中的步骤在训练后从新图像中提取特征,

你最终得到一个 data.mdb 文件。

我更喜欢将功能写入 txt 文件,以便轻松操作它。

我做了一些谷歌搜索并找到了一些代码,但没有工作。此外,生成的 data.mdb 文件在 mac 上使用 mdb opener 应用程序打开时,根本不显示任何表格。

有没有一种简单的方法可以将提取的特征写入文本文件,或者有一种简单的方法来操作 mdb 文件,以便我们检查每张图像的实际值?

0 投票
2 回答
21192 浏览

python - Caffe:从 Python 读取 LMDB

我使用 caffe 提取了特征,它生成了一个 .mdb 文件。然后我尝试使用 Python 读取它并将其显示为可读数字。

这会打印出很长的一行不可读的损坏字符。

然后我尝试打印 int(value),它返回以下内容:

float(value) 给出以下内容:

这是 lmdb 文件本身的问题,还是与数据类型的转换有关?

0 投票
1 回答
1637 浏览

c++ - 没有 lmdb 的 Caffe+Opencv

使用 caffe 时,要创建包含图像的训练数据集,我们需要以 lmdb 等特殊格式创建数据库,但是有任何选项可以传递给 caffe 批量图像,例如vector<cv::Mat>

为了澄清我正在寻找可以处理大量无法放入内存的图像的解决方案(但假设一个训练批次(例如包含 50 个图像)可以存储在内存中)。

0 投票
1 回答
1491 浏览

deep-learning - 使用 Caffe 进行多标签分类

我想微调 GoogLeNet 以使用 Caffe 进行多标签分类。我已经将它微调为单标签分类,但我还不能过渡到多标签。

我正在做的主要步骤是不同的:

为数据和基本事实创建 LMDB

我在这里这里修改代码以创建一个带有数据的 LMDB 和另一个带有基本事实的 LMDB。

用 SigmoidCrossEntropyLoss 替换 SoftmaxWithLoss

更新 train_val.prototxt,我将 SoftmaxWithLoss 层替换为 SigmoidCrossEntropyLoss,并设置数据层以便加载两个 DB。我像处理单标签分类问题一样设置学习率参数。

这个步骤似乎奏效了。数据流,可以执行solver.step(1)。为了验证数据和标签是否正确加载,我使用公式明确计算了损失,并得到了与 Caffe 相同的结果。

问题

网络不收敛。运行它数百次迭代,每个不同的类平均围绕类人口。也就是说,如果 a 类在总体中有 0.35 个 1 和 0.65 个 0,那么无论真实标签如何,网络对于每个观察值都会收敛到 ~0.35 的分类概率。

可能的错误 1

我怀疑问题是因为我未能以 GoogLeNet 预训练模型可以从中学习的方式将图像正确加载到 caffe 中。到目前为止,我以前的经验是 convert_imageset,它工作得很好。现在我正在使用 shelhamer 代码将图像保存到 LMDB 中:

加载图像时,我将数据层中的平均值标准化。这看起来对吗?还有另一种方法吗?

可能的错误 2

也可能是 train_val.prototxt 定义错误。除了切换 SoftmaxWithLoss -> SigmoidCrossEntropyLoss,还有什么需要做的吗?

任何帮助将不胜感激!谢谢!

0 投票
1 回答
465 浏览

c++ - LMDB Seek(移动光标)不读

我想知道是否可以在不同时检索数据的情况下将光标向前移动 n 个位置(即降低 i/o 负载)。

我知道,mdb_cursor_get但它似乎在每次调用时都会从磁盘中检索数据,并结合MDB_NEXT.

非常感激您的帮忙!

0 投票
1 回答
2599 浏览

deep-learning - 合并两个 LMDB 数据库以馈送到网络 (caffe)

这里有两个 LMDB 数据库。有没有办法合并这两个数据库并使用 caffe 将其提供给网络?

0 投票
1 回答
688 浏览

python - 无法访问 python lmdb,'对象没有属性'环境''

我正在使用 lmdb python 加载数据

我收到一条错误消息,提示“img_env = lmdb.Environment(img_db_fn, map_size=1099511627776) AttributeError: 'module' object has no attribute 'Environment''

0 投票
1 回答
3198 浏览

linux - LMDB Windows 数据库的最大大小

例如,当我将最大 db 大小设置为 5G 时,在 windows 上,即使我只插入一小段数据,最终的 db 文件大小也会变为 5G。但在 linux 上它工作正常,最终的 db 大小与我插入的数据量有关。

这是我用来设置最大数据库大小的 api

rc = ::mdb_env_set_mapsize(env, 5 * 1024 * 1024 * 1024);

Windows 和 linux 也一样。我需要为 Windows 做一些不同的事情吗?

0 投票
3 回答
11248 浏览

python - 为 Caffe 生成 LMDB

我正在尝试使用 caffe 构建一个用于显着性分析的深度学习模型(我正在使用 python 包装器)。但我无法理解如何为此目的生成 lmdb 数据结构。我已经浏览了 Imagenet 和 mnist 示例,并且我知道我应该以格式生成标签

但就我而言,我将用 0 或 1 标记每个像素,指示该像素是否显着。这不会是图像的单个标签。

如何为基于每个像素的标签生成 lmdb 文件?