caffe使用FCN时,训练loss总是保持不变的问题

使用原作者分享出来的FCN版本进行训练,如果直接使用.prototxt文件在caffe上训练,会出现loss基本保持不变的问题。

这种问题的产生是因为原作者搭建网络时设置的问题,即初始化的问题:

layer {
  name: "upscore_pool4"
  type: "Deconvolution"
  bottom: "fuse_pool4"
  top: "upscore_pool4"
  param {
    lr_mult: 0
  }
  convolution_param {
    num_output: 21
    bias_term: false
    kernel_size: 4
    stride: 2
  }
}

caffe使用FCN时,训练loss总是保持不变的问题_第1张图片

在定义Deconvolution层的时候

 param {
    lr_mult: 0  #不更新卷积核

  }

bias_term: false #不添加偏置

 convolution_param {
    num_output: 21
    bias_term: false
    kernel_size: 4
    stride: 2

  } #没有指定卷积核的初始化方式,即所有权值为默认值0

这种定义Deconvolution的方式会导致所有的输出feature map均为0.

所以如果是二分类问题,则



你可能感兴趣的:(caffe,Deep,Learning)