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_fillerbias_filler

layer {
  name: "conv1"
  type: "Convolution"
  bottom: "data"
  top: "conv1"
  convolution_param {
    num_output: 20
    kernel_size: 5
    stride: 1
  }
}

上面的层将 运行 在测试期间表现良好。