参数“轴”在比例图层

时间:2016-08-16 05:18:34

标签: machine-learning neural-network deep-learning caffe

我了解缩放图层的作用为z = x * y,其中y被“广播”以匹配x的形状。

这是我的问题:

我的bottom[0]尺寸为N*C*H*Wbottom[1]为N*1*H*W

我希望将bottom[1]平铺到N*C*H*W,然后计算元素产品。

我应该如何设置参数,尤其是"axis"

很多。

2 个答案:

答案 0 :(得分:0)

基于scale_layer.cpp轴是缩放的起始轴:

axis_ = bottom[0]->CanonicalAxisIndex(param.axis());
...
const vector<int>::const_iterator& shape_start =
        bottom[0]->shape().begin() + axis_;
const vector<int>::const_iterator& shape_end =
        (num_axes == -1) ? bottom[0]->shape().end() : (shape_start + num_axes);
vector<int> scale_shape(shape_start, shape_end);

因此,在您的情况下,您可以将axis参数设置为0或1。 还有另一个参数num_axis,根据我的理解,它是缩放的轴数。在您的情况下,它可以设置为2或1,具体取决于您的轴参数。 (axis=1, num_axis=1axis =0, num_axis=2)。

我从未使用过这一层,这些结论仅基于scale_layer的源代码。

答案 1 :(得分:0)

我不是百分百肯定的。但你可以尝试两件事。在concat层中,axis = 0表示N * C * H * W中的第一个维度(N),而轴= 1表示第二个维度(C)。所以你可以尝试使用axis = 1和scale参数3.我不完全确定。但你可以尝试让我知道你得到了什么。

您可以尝试的另一件事是使用轴= 1的Concat图层。