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