我想在caffe中拆分斑点通道,以便我可以将一个 (N, c, w, h)
的一个斑点拆分为两个大小 (N, c/2, w, h)
的输出斑点。
我上面描述的非常通用,我想做的实际上是将两通道输入图像分为两个不同的图像。一个进入卷积层,另一个转到汇总层。最后,我加入输出。
所以我想知道是否允许用户执行此类操作的咖啡层以及如何在原始文件中定义它。
是的,Slice
层是为此目的。从层目录中:
Slice
层是一个实用程序层,它沿给定的尺寸(当前仅num
或channel
)将输入层切成多个输出层。
要将大小N x 2 x H x W
的斑点切成两个尺寸N x 1 x H x W
的斑点,您必须在slice_point: 1
处切片axis: 1
(沿着频道)(第一个频道之后):
layer {
name: "slice-conv-pool"
type: "Slice"
bottom: "data"
top: "conv1"
top: "pool1"
slice_param {
axis: 1
slice_point: 1
}
}