caffe 中 deploy.prototxt 文件的哪一部分对于测试是绝对必要的?
Which part of the deploy.prototxt file in caffe is absolutely necessary for testing?
在最近的一次讨论中,我发现 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 部分是绝对必需的吗?如果是,我们是否还需要定义权重和偏差填充器,因为我们只会使用此文件进行测试,并且填充器仅在我们需要训练网络时才会初始化。还有其他不必要的细节吗?
convolution_param
部分是必需的,但如果需要,您可以删除 weight_filler
和 bias_filler
。
layer {
name: "conv1"
type: "Convolution"
bottom: "data"
top: "conv1"
convolution_param {
num_output: 20
kernel_size: 5
stride: 1
}
}
上面的层将 运行 在测试期间表现良好。
在最近的一次讨论中,我发现 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 部分是绝对必需的吗?如果是,我们是否还需要定义权重和偏差填充器,因为我们只会使用此文件进行测试,并且填充器仅在我们需要训练网络时才会初始化。还有其他不必要的细节吗?
convolution_param
部分是必需的,但如果需要,您可以删除 weight_filler
和 bias_filler
。
layer {
name: "conv1"
type: "Convolution"
bottom: "data"
top: "conv1"
convolution_param {
num_output: 20
kernel_size: 5
stride: 1
}
}
上面的层将 运行 在测试期间表现良好。