gpt4 book ai didi

python - Caffe & python,读取标签结构复杂的LMDB

转载 作者:太空宇宙 更新时间:2023-11-03 11:18:04 25 4
gpt4 key购买 nike

我有两个 LMDB 文件,第一个我的网络训练很好,而另一个则不能正常工作(损失开始并保持为 0)。所以我认为第二个 LMDB 可能有问题。我尝试编写一些 python 代码(主要取自 here)以从我的 LMDB 中获取数据并检查它,但到目前为止,这两个数据库中的任何一个都没有运气。 LMDB 包含作为数据的图像和作为标签的边界框信息。

这样做:

for key, value in lmdb_cursor:
datum.ParseFromString(value)
label = datum.label
data = caffe.io.datum_to_array(datum)

在任何一个 LMDB 上都给了我一个正确的图像名称的键,但是 datum.ParseFromString 函数无法从 value 中检索任何内容. label 始终为 0,而 data 是一个空的 ndarray。尽管如此,数据在那里,值是一个大约 140 KB 的二进制字符串,它正确地说明了图像的大小加上我猜的边界框信息。

我试着浏览了几个关于在 python 中从 LMDB 读取数据的答案和讨论,但我找不到任何关于如何读取结构化信息(如边界框标签)的线索。我的猜测是解析函数需要一个数字标签并如此解释第一个字节,然后由于二进制字符串不再具有任何意义而导致剩余数据丢失?

我知道至少第一个 LMDB 是正确的,因为我的网络使用它在训练和测试中都表现正确。

任何输入将不胜感激!

最佳答案

存储在您的 LMDB 中的基本元素不是 Datum ,而是 AnnotatedDatum .因此,您需要小心处理它:

datum.ParseFromString(value.datum)
value.annotation_group # should store the annotations

关于python - Caffe & python,读取标签结构复杂的LMDB,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48516113/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com