在最近的一次讨论中,我发现 deploy.prototxt 的某些部分之所以存在,只是因为它们是直接从 train_test.prototxt 复制而来的,并且在测试期间被忽略了。例如:
layer {
name: "conv1"
type: "Convolution"
bottom: "data"
top: "conv1"
param { #Starting here
lr_mult: 1
}
param {
lr_mult: 2
} #To here
convolution_param { #is this section useful?
num_output: 20
kernel_size: 5
stride: 1
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
}
}
}
有人告诉我,包含 LR 作为偏差的权重部分在部署文件中没有用,可以删除。这让我想到,convolution_param 部分是绝对需要的吗?如果是,我们是否还需要定义权重和偏置填充器,因为我们只会使用这个文件进行测试,并且填充器仅在我们需要训练网络时才被初始化。有没有其他不必要的细节?