【问题标题】:How to extract trained caffe kernels filter of the first layer如何提取第一层训练有素的 caffe kernels 过滤器
【发布时间】:2015-11-20 21:14:04
【问题描述】:

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

谢谢

【问题讨论】:

  • 请添加minimal reproducible example。此外,SO 不是其他人编写您的代码的地方,请列出您发现的内容,以及为什么它不适合您。
  • 你指的是什么论文?另外,您已经尝试过什么? Stack Overflow 将帮助您解决您自己代码中的问题,但不会完全为您编写。

标签: matlab machine-learning computer-vision neural-network caffe


【解决方案1】:

假设您有一个训练有素的网络,其 '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(); 

【讨论】:

    猜你喜欢
    • 2023-04-08
    • 1970-01-01
    • 2017-04-20
    • 1970-01-01
    • 1970-01-01
    • 2016-01-27
    • 2017-03-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多