你好我对深度学习和咖啡很新,所以请不要介意我的问题是否有点愚蠢 .
我一直在研究像素分类/分割/回归 . 因此,我看到有一个gitlhub回购图像分割fcn berkeley和其他一些帖子,如question 1,question 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"
}