问题描述:

I am trying to understand the caffe implementation of Fully Convolutional Networks for Semantic Segmentation

. For its upscore layer implementation in fcn32 model, it sets up kernel_size=64. when reading the original paper, I did not find the description of this setup, Whats the reason that we need to setup kernel_size=64?

n.fc6, n.relu6 = conv_relu(n.pool5, 4096, ks=7, pad=0)

n.drop6 = L.Dropout(n.relu6, dropout_ratio=0.5, in_place=True)

n.fc7, n.relu7 = conv_relu(n.drop6, 4096, ks=1, pad=0)

n.drop7 = L.Dropout(n.relu7, dropout_ratio=0.5, in_place=True)

n.score_fr = L.Convolution(n.drop7, num_output=21, kernel_size=1, pad=0,

param=[dict(lr_mult=1, decay_mult=1), dict(lr_mult=2, decay_mult=0)])

n.upscore = L.Deconvolution(n.score_fr,

convolution_param=dict(num_output=21, kernel_size=64, stride=32,

bias_term=False),

param=[dict(lr_mult=0)])

n.score = crop(n.upscore, n.data)

n.loss = L.SoftmaxWithLoss(n.score, n.label,

loss_param=dict(normalize=False, ignore_label=255))

相关阅读:
Top