如何在Pytorch中像conv2d参数“ groups”那样在张量流中获得每个通道的卷积?

时间:2019-06-22 13:56:06

标签: tensorflow pytorch

我正在从事一个项目,该项目我指的是在Pytorch中构建的网络。它的一层包含conv2d层,其中group =一些值。当我在Tensorflow中构建项目时。考虑到我在tensorflow的conv2d层中没有找到任何组参数,我该如何做这一特定层。我在网上搜索过,但找不到任何具体信息,例如小组所说的是每通道卷积。我找到的最接近的东西是tf.nn.separable_conv2d,但仍然不确定如何在其中设置参数。

Pytorch层为conv2d(input ,weight , groups = x ) 其中输入和权重为4d张量。谁能帮我在Tensorflow中创建此层的方法。

2 个答案:

答案 0 :(得分:0)

我认为您应该检查PyTorch中conv2d的定义。 您的前两个参数应该是整数,而不是4D张量。

默认情况下,组为1,在这种情况下不应更改。 我认为在Tensorfolow中,如果组> 1,则应使用function SVG2() { return ( <svg viewbox="0 0 600 600"> <rect height="100%" width="100%" fill="#ccc" /> <circle cx={150} cy={75} r={50} fill="red" /> <text x="100" y="275" font-size="50"> This is not the right size. </text> </svg> ); }

如果增加组,则会得到深度卷积,其中每个输入通道本身都会获得特定的内核。

您唯一应遵守的规则是,输入和输出通道均应按组号进行划分。

答案 1 :(得分:0)

Tensorflow 1.14.0支持组卷积。请参阅此拉取请求:

https://github.com/tensorflow/tensorflow/pull/25818

输入深度形状可以是输入过滤器数量的倍数,而不是“ groups”参数。