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

时间:2016-04-02 05:47:19

标签: computer-vision normalization deep-learning caffe

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

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

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

1 个答案:

答案 0 :(得分:0)

您可以使用简单的图层组合在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
  }
}