使用现有层在Caffe中进行L2规范化

Nam*_*man 5 normalization computer-vision deep-learning caffe

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

我可以找到一些链接,其中人们发布了L2规范化层的代码.但是我想知道是否可以使用Caffe的Local Response Normalization层或者其他任何一个.

我有一个1x2048的最终fc向量(大小为1x1的2048个通道).有人可以指导我这件事吗?

小智 1

您可以使用简单层的组合在 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
  }
}
Run Code Online (Sandbox Code Playgroud)