我有几个数据库,我需要在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数据库并节省时间。所以我在Merge two LMDB databases for feeding to the network (caffe)
的python中单独完成了我有第三个数据集: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-我应该在folders
部分导入image LMDB
train_db和val_db吗?
2-我搜索了label LMDB
,但我不明白我应该在这部分做什么。你能清楚地解释一下我应该做些什么吗?
非常感谢你的帮助。
答案 0 :(得分:1)
你必须以与他们相同的方式创建它们。我先读了它们然后创造了他们所做的。
如果您使用相同的类结构更改现有的Classification DataSet,则此方法有效。您必须编辑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