Caffe是否需要改组数据?

时间:2016-06-06 12:54:40

标签: c++ machine-learning neural-network deep-learning caffe

我使用C ++将我的图像数据转换为caffe db格式(leveldb,lmdb),例如我将此代码用于imagenet

是否需要对数据进行洗牌,我可以写入所有积极因素,然后写入所有负面信息,例如00000000111111111,或者数据是否需要洗牌,标签应该看起来像010101010110101011010?

来自DB的caffe样本数据是如何使用size = batch_size的所有数据的随机子集?

1 个答案:

答案 0 :(得分:10)

你应该对样本进行洗牌吗?如果你没有洗牌,请考虑学习过程; caffe只看到0个样本 - 您期望算法推断出什么?只是简单地预测0,一切都很酷。如果你在点击第一个0之前有足够的1,那么caffe将非常有信心预测0。从这一点开始移动模型将非常困难 另一方面,如果它经常看到01的混合,它会从头开始学习 有意义的功能来分隔示例。
底线:对训练样本进行随机播放是非常有利的,尤其是在使用基于SGD的方法时。

AFAIK,caffe不会随机抽样batch_size个样本,而是在batch_size个样本之后依次在输入数据库batch_size上进行采样。

<强> TL; DR
洗牌。