在LMDB文件中随机播放数据

时间:2016-03-19 22:45:05

标签: caffe lmdb

我已经为LMDB创建了一个现有的caffe(Symas Lightning Memory-Mapped Database)文件。是否有任何可能的方法来重新排列现有LMDB中的数据,以创建具有数据混洗的新LMDB。任何建议或想法都会有所帮助。

2 个答案:

答案 0 :(得分:1)

LMDB根据密钥的词典顺序遍历数据。您可以在当前密钥前加一个随机数,然后相应地对数据进行洗牌。我也正在研究一种在epochs之间随机重写密钥的有效方法,因为我想在我的数据集中使用Batch规范化。

答案 1 :(得分:0)

要添加@Manolo给出的答案,在按建议here创建LMDB数据集时,我将一个随机int连接到开头,如下所示:

random.seed(i)
str_id = '{:05}'.format(random.randint(1,70000))+'{:05}'.format(i)

我选择70000,因为我的LMDB有大约72000张图像。