1

我有几个数据库,我需要在 NVIDIA DIGITS 上对它们进行分类。但是将我的大数据导入DIGITS需要很多时间(2-4天)!!!想象一下,我已将 2 个图像集转换为 .lmdb 形式,例如:

data1                                           data2
--> folder train1_db: data.mdb, lock.mdb        --> folder train2_db: data.mdb, lock.mdb 
--> folder  val1_db: data.mdb, lock.mdb         --> folder  val2_db: data.mdb, lock.mdb 
--> mean.binaryproto                            --> mean.binaryproto
--> some other txt files...                     --> some other txt files...  

现在我需要连接这两个 .lmdb 数据库并节省时间。所以我在 python 中分别完成了合并两个 LMDB 数据库以馈送到网络(caffe)

我有第三个数据集,其中包含: train_db 和 val_db 文件夹,每个文件夹都包含上面的 data.mdb 和 lock.mdb 文件。

data3                                           
--> folder train3_db: train1_db + train2_db              
--> folder va3_db: val_db + va2_db                    

我需要将这些导入到 DIGITS 中,以便在它们上训练网络。

我的问题是:

1-我应该部分导入folderstrain_db 和 val_dbimage LMDB吗?

2-我搜索label LMDB但我不明白我应该在这部分做什么。你能清楚地解释我应该怎么做吗?

非常感谢您的帮助。

4

1 回答 1

1

您必须以与它们相同的方式创建它们。我先阅读它们,然后创建它们所做的事情。

如果您更改具有相同类结构的现有分类数据集,则此方法有效。您必须编辑 pickle 文件以更新 2 个位置的 train 和 val 的图像总数。您必须像拥有它们一样生成 lmdb 文件。

顺便说一句……他们当然不推荐这个:查看: https ://github.com/NVIDIA/DIGITS/issues/1035

这是我的代码: https ://github.com/GemHunt/lmdb-testing/blob/master/create_lmdb_rotate_whole_image.py

于 2017-05-12T20:47:14.390 回答