如何将外部预建的.LMDB文件导入NVIDIA DIGITS?

时间:2017-05-12 16:50:48

标签: caffe nvidia-digits

我有几个数据库,我需要在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,但我不明白我应该在这部分做什么。你能清楚地解释一下我应该做些什么吗?

非常感谢你的帮助。

1 个答案:

答案 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