machine-learning - 使用 prototxt 在 caffe 中进行标签平滑,无需数据重新生成

标签 machine-learning neural-network deep-learning protocol-buffers caffe

我在 LMDB (40Gb) 中有一个巨大的数据集,用于使用 caffe 训练二元分类器。

Caffe 中的数据层包含整数标签。

是否有任何现成的层可以将它们转换为 float 并添加一些随机抖动,以便我可以应用标签平滑技术,如 7.5.1 here 中所述。

我看过 HDF5 的示例,但它们需要重新生成数据集,我想避免它。

最佳答案

您可以使用DummyData层来生成您想要添加到标签的随机噪声。一旦出现噪音,请使用 Eltwise层总结它们:

layer {
  name: "noise"
  type: "DummyData"
  top: "noise"
  dummy_data_param {
    shape { dim: 10 dim: 1 dim: 1 dim: 1 } # assuming batch size = 10
    data_filler { type: "uniform" min: -0.1 max: 0.1 } # noise ~U(-0.1, 0.1) 
  }
}
layer {
  name: "label_noise"
  type: "Eltwise"
  bottom: "label"  # the input integer labels
  bottom: "noise"
  top: "label_noise"
  eltwise_param { operation: SUM }
}

关于machine-learning - 使用 prototxt 在 caffe 中进行标签平滑,无需数据重新生成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45435500/

相关文章:

python - MNIST 手写数字

python - 如何在GPU上进行训练时处理非确定性?

machine-learning - 机器学习-按内容将网页分类为地址和无地址

python - 我需要安装 "quandl"。但是当我在终端中键入 "sudo pip install quandl"时,出现以下错误 :

machine-learning - CNN 每个节点的范围更窄,因此每层的范围更大?

java - 从 deeplearning4j 层提取特征

python - 精度随着纪元的增加而降低

python - 尝试在 Tensorflow 中使用未初始化的值变量(使用了 sess.run(tf.global_variables_initializer()) !)

python - 使用经过训练的 Keras 模型对新的 csv 数据进行预测

python - Theano 中的 GRU 实现