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

问题描述 投票:5回答:1

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

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

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

computer-vision normalization deep-learning caffe
1个回答
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
  }
}
© www.soinside.com 2019 - 2024. All rights reserved.