caffe fcn像素分段到回归

时间:2016-11-11 09:25:50

标签: deep-learning caffe conv-neural-network

你好我对深度学习和咖啡很新,所以请不要介意我的问题是否有点愚蠢。

我一直在研究像素分类/分割/回归。因此,我看到有一个用于图像分割的gitlhub仓库fcn berkeley以及其他一些帖子,例如question 1question 2

我想做的是类似的东西略有不同。我有一个图像数据集和相应的ground_truth作为图像。我不确定通过 SoftmaxLoss 或通过 EuclideanLoss 进行逐步分类是否更好。我的ground_truth图像包含0-255的值,只有一个通道。

我一直在尝试做一个回归任务,并且有一个完全卷积网络,其中有一些卷积层仍然是输出大小,最后一层看起来像这样:最后我想做一个深度预测任务。因此,我不确定使用SoftmaxWithLoss或EuclideanLoss是否更好。然而,这个问题可能有点愚蠢。但这种方法是否正确?首先,我试图了解我的图像的形状,即当我的输入图像在相应位置具有大于0的值时,我已将ground_truth中的值设置为0.5。有人可以帮我吗?

layer {
  name: "conv1"
  type: "Convolution"
  bottom: "data"
  top: "conv1"
  convolution_param {
    num_output: 256
    kernel_size: 53
    stride: 1
    pad: 26
    weight_filler {
      type: "gaussian"
      std: 0.011
    }
    bias_filler {
      type: "constant"
      value: 0
    }
  }
}
layer {
  name: "relu1"
  type: "ReLU"
  bottom: "conv1"
  top: "conv1"
}
layer {
  name: "conv2"
  type: "Convolution"
  bottom: "conv1"
  top: "conv2"
  convolution_param {
    num_output: 128
    kernel_size: 15
    stride: 1
    pad: 7
    weight_filler {
      type: "gaussian"
      std: 0.011
    }
    bias_filler {
      type: "constant"
      value: 0
    }
  }
}
layer {
  name: "relu2"
  type: "ReLU"
  bottom: "conv2"
  top: "conv2"
}
layer {
  name: "conv3"
  type: "Convolution"
  bottom: "conv2"
  top: "conv3"
  convolution_param {
    num_output: 1
    kernel_size: 11
    stride: 1
    pad: 5
    weight_filler {
      type: "gaussian"
      std: 0.011
    }
    bias_filler {
      type: "constant"
      value: 0
    }
  }
}
layer {
  name: "relu3"
  type: "ReLU"
  bottom: "conv3"
  top: "conv3"
}

#layer {
#  name: "loss"
#  type: "SoftmaxWithLoss"
#  bottom: "score"
#  bottom: "label"
#  top: "loss"
#  loss_param {
#    ignore_label: 255
#    normalize: true
#  }
#}
layer {
  name: "loss"
  type: "EuclideanLoss"
  bottom: "conv3"
  bottom: "label"
  top: "loss"
}

0 个答案:

没有答案