computer-vision - 使用现有层在 Caffe 中进行 L2 归一化

标签 computer-vision normalization deep-learning caffe

我正在尝试在 Caffe 中为一个层执行 L2 归一化。这个想法是在对比损失中使用这些 L2 归一化 fc7 特征,例如 http://www.cs.cornell.edu/~kb/publications/SIG15ProductNet.pdf .

我可以找到一些链接,人们在那里发布了 L2 规范化层的代码。但是我想知道是否可以使用 Caffe 的本地响应归一化层或任何其他层。

我有一个 1x2048 的最终 fc 向量(2048 个 channel ,大小为 1x1)。有人可以指导我吗?

最佳答案

您可以使用简单层的组合在 Caffe 中执行 L2 规范化:

layer {
  name: "denom"
  type: "Reduction"
  bottom: "loss"
  top: "denom"
  reduction_param {
    operation: SUMSQ
    axis: 1
  }
}
layer {
  name: "power"
  type: "Power"
  bottom: "denom"
  top: "power"
  power_param {
    power: -0.5
    shift: 9.99999996004e-13
  }
}
layer {
  name: "reshape"
  type: "Reshape"
  bottom: "power"
  top: "reshape"
  reshape_param {
    shape {
      dim: 1
    }
    axis: -1
    num_axes: 0
  }
}
layer {
  name: "tile"
  type: "Tile"
  bottom: "reshape"
  top: "tile"
  tile_param {
    axis: 1
    tiles: 300
  }
}
layer {
  name: "elwise"
  type: "Eltwise"
  bottom: "loss"
  bottom: "tile"
  top: "elwise"
  eltwise_param {
    operation: PROD
  }
}

关于computer-vision - 使用现有层在 Caffe 中进行 L2 归一化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36369679/

相关文章:

algorithm - 是否有可能从仿射注册中获得物体运动?

mysql - 根据另一个表的条件在一个 MySQL 表中查找条目

python - tflearn/tensorflow 不学习 xor

machine-learning - 在下面的示例中,避免过度拟合的最佳时期是什么?

python - 向图像添加新 channel

matlab - 删除图像中的小块标签

opencv - 你如何计算平均梯度方向和平均梯度强度/幅度

python - 反向 z 评分 Pandas 数据框

machine-learning - 如果我对训练数据执行数据预处理,是否有必要对测试数据执行相同的数据预处理?

python - TensorFlow 无法为 Tensor 'Placeholder:0' 提供形状 (100, 784) 的值