我正在尝试使用自己的数据对SSD MobileNet v2(来自模型动物园)进行微调。在pipeline.config中,我看到use_dropout
设置为false。这是为什么?我认为应该使用辍学来防止过拟合。
box_predictor {
convolutional_box_predictor {
conv_hyperparams {
regularizer {
l2_regularizer {
weight: 3.99999989895e-05
}
}
initializer {
truncated_normal_initializer {
mean: 0.0
stddev: 0.0299999993294
}
}
activation: RELU_6
batch_norm {
decay: 0.999700009823
center: true
scale: true
epsilon: 0.0010000000475
train: true
}
}
min_depth: 0
max_depth: 0
num_layers_before_predictor: 0
use_dropout: false
dropout_keep_probability: 0.800000011921
kernel_size: 3
box_code_size: 4
apply_sigmoid_to_scores: false
}
}
是因为批量标准化吗?在此paper中,它表示:
3.4批量归一化将 模型
使用“批量归一化”进行训练时,可以将训练示例与其他示例结合使用。 小批量生产,并且培训网络不再为给定的培训示例生成确定性值。在 我们的实验中,我们发现这种效果是有利的 网络的普遍化。而辍学 (Srivastava et al。,2014)通常用于减少过度拟合,在批量标准化网络中,我们发现它可以 被移除或强度降低。