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

我一直在研究像素分类/分割/回归 . 因此,我看到有一个gitlhub回购图像分割fcn berkeley和其他一些帖子,如question 1question 2 .

我想做的是类似的buf略有不同 . 我有一个图像数据集和相应的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"
}