如何在 Caffe 中沿着通道分割 Blob

2024-05-21

我想在Caffe中分割Blob通道,这样我就可以分割一个Blob(N, c, w, h)分成两个大小相同的输出 Blob(N, c/2, w, h).

我上面描述的是非常笼统的,我实际上想做的是将一个两通道输入图像分离成两个不同的图像。一个进入卷积层,另一个进入池化层。最后,我连接输出。

所以我想知道是否存在允许用户执行此类操作的 Caffe 层,以及如何在 prototxt 文件中定义它。


是的Slice层就是为了这个目的。来自图层目录 http://caffe.berkeleyvision.org/tutorial/layers.html:

The Slice层是一个实用层,它将输入层沿给定维度分割为多个输出层(目前num or channel仅)具有给定的切片索引。

对 Blob 大小进行切片N x 2 x H x W分成两个大小的 BlobN x 1 x H x W,你必须切片axis: 1(沿渠道)slice_point: 1(在第一个通道之后):

layer {
  name: "slice-conv-pool"
  type: "Slice"
  bottom: "data"
  top: "conv1"
  top: "pool1"
  slice_param {
    axis: 1
    slice_point: 1
  }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 Caffe 中沿着通道分割 Blob 的相关文章

随机推荐