如何提取第一层训练好的caffe kernels filter

How to extract trained caffe kernels filter of the first layer

我正在使用 caffe,我想知道我是否可以单独使用其中一个过滤器。 所以基本上我只需要那个过滤器的训练内核(在第一层使用)。
我在论文中找不到内核的公式。
所以如果有人能帮助我,我真的很感激。
如果你也能告诉我如何在matlab版本中提取它们,我将不胜感激。

谢谢

假设您有一个经过训练的网络,其 'deploy.prototxt' 文件定义了网络,并且训练参数位于 'my_weights.caffemodel' 文件中。
假设你感兴趣的层在 'deploy.prototxt':

中是这样定义的
layer {
  name: "conv1"
  type: "Convolution"
  bottom: "data"
  top: "conv1"
  param {
    lr_mult: 1
  }
  param {
    lr_mult: 2
  }
  convolution_param {
    num_output: 32
    pad: 2
    kernel_size: 5
    stride: 1
  }
}

如您所见,层的名称是 "conv1" 它有 32 个大小为 5×5 的过滤器。

首先需要在Matlab中加载网络

 >> net = get_net( 'path/to/deploy.prototxt', 'path/to/my_weights.caffemodel', 'test' );

加载网络后,您可以使用图层名称访问其参数

>> w = net.params( 'conv1', 1 ).get();