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 部分是绝对需要的吗?如果是,我们是否还需要定义权重和偏置填充器,因为我们只会使用这个文件进行测试,并且填充器仅在我们需要训练网络时才被初始化。有没有其他不必要的细节?

4

2 回答 2

2

该部分是必需的,convolution_param但您可以根据需要删除。weight_fillerbias_filler

于 2016-04-19T09:03:00.400 回答
2
layer {
  name: "conv1"
  type: "Convolution"
  bottom: "data"
  top: "conv1"
  convolution_param {
    num_output: 20
    kernel_size: 5
    stride: 1
  }
}

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

于 2016-04-19T09:36:50.530 回答