卷积中的负填充(Caffe)
Negative Padding in Convolution (Caffe)
我有一个向量,它由跨 7 帧的视频序列的特征串联而成。
我想对这个向量应用一维卷积,以便只处理帧的一部分。
假设一帧的特征向量的长度为 10
- 我的输入特征向量的总长度为 7 x 10 = 70
现在我想要两个卷积作用于该向量的不同部分
- conv1 应该处理特征 1:5
- conv2 应该对待 6:10
- 两者的步幅都是 10
- 因此卷积过滤器仅适用于不同帧中的相同特征
基本上我需要为第二个转换过滤器指定一个偏移量。那可能吗?
在 Caffe 网站上,他们只谈论零填充,但对于偏移量,我需要负填充。
这样的事情可能吗?
layer {
name: "conv2"
type: "Convolution"
bottom: "data"
top: "conv2"
param {
lr_mult: 1
decay_mult: 1
}
param {
lr_mult: 2
decay_mult: 0
}
convolution_param {
num_output: 90
kernel_h: 1
kernel_w: 5
pad_h: 0
pad_w: -5
stride: 10
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
value: 0
}
}
}
我认为你可以通过使用 slicing layer 而不是负填充来实现这一点。
我有一个向量,它由跨 7 帧的视频序列的特征串联而成。
我想对这个向量应用一维卷积,以便只处理帧的一部分。
假设一帧的特征向量的长度为 10
- 我的输入特征向量的总长度为 7 x 10 = 70
现在我想要两个卷积作用于该向量的不同部分
- conv1 应该处理特征 1:5
- conv2 应该对待 6:10
- 两者的步幅都是 10
- 因此卷积过滤器仅适用于不同帧中的相同特征
基本上我需要为第二个转换过滤器指定一个偏移量。那可能吗? 在 Caffe 网站上,他们只谈论零填充,但对于偏移量,我需要负填充。
这样的事情可能吗?
layer {
name: "conv2"
type: "Convolution"
bottom: "data"
top: "conv2"
param {
lr_mult: 1
decay_mult: 1
}
param {
lr_mult: 2
decay_mult: 0
}
convolution_param {
num_output: 90
kernel_h: 1
kernel_w: 5
pad_h: 0
pad_w: -5
stride: 10
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
value: 0
}
}
}
我认为你可以通过使用 slicing layer 而不是负填充来实现这一点。