我有一个5D blob像1x8x128x128
,我有一个能够处理我的5D blob的卷积层。当我想使用一个池层,尽管它不起作用。你如何使用带有5D blob的pool-layer
?caffe:5D斑点池?
检查失败:4 ==底部[0] - > num_axes()(4与5)输入必须有4个 轴,对应于(NUM,信道,高度,宽度)
我认为它只是不被caffe支持。我可以只使用卷积层并执行pooling
?
我有一个5D blob像1x8x128x128
,我有一个能够处理我的5D blob的卷积层。当我想使用一个池层,尽管它不起作用。你如何使用带有5D blob的pool-layer
?caffe:5D斑点池?
检查失败:4 ==底部[0] - > num_axes()(4与5)输入必须有4个 轴,对应于(NUM,信道,高度,宽度)
我认为它只是不被caffe支持。我可以只使用卷积层并执行pooling
?
如果你想集中只有前两个空间维度,可以"Reshape"
到4D(“挤压”的渠道和时间维度),池,然后"Reshape"
回5D:
layer {
name: "pool/reshape4D"
type: "Reshape"
bottom: "in"
top: "pool/reshape4D"
reshape_param { axis: 1 num_axes: 1 shape { dim: -1 } }
}
layer {
name: "pool"
type: "Pooling"
bottom: "pool/reshape4D"
top: "pool"
# pooling params here...
}
layer {
name: "pool/reshape5D"
type: "Reshape"
bottom: "pool"
top: "pool/reshape5D"
reshape_param { axis: 1 num_axes: 1 shape { dim: -1 dim: <temporal_dim> } } # replace <.> with the actual temporal dimension size.
}
见定义ReshapeParameter
在caffe.proto
有关更多详情。
我的尺寸不是暂时但适当的3D切片,但不应有所作为。我正在考虑将2D图像以4D blob的形式提供给网络,并且在最后谈到丢失时,我会将我的4D blob重塑为5D blob,并且如果这是偶数,则使用'Softmax'作为5D blob可能。但我也会在这里尝试这个答案!谢谢! @Shai – thigi
你可以(1)为咖啡实现ND池层。或者(2)如果只汇集前2个空间维度,则可以重塑为4D,共享池并重新变形为5D – Shai
好吧,如何省略维度,然后再次重新整形并再次添加一个维度?我知道如何添加维度,但我不知道如何省略维度。 @Shai – thigi
另一种选择是在卷积层中设置“stride = 2”,而不是跟随一个池层,以实现二次采样。 – Dale