Pytorch 如何在批处理的Py2D函数中使用groups参数?

Pytorch 如何在批处理的Py2D函数中使用groups参数?,pytorch,Pytorch,在后面跟着问题 我可以知道,如果输入批次大小=4,对于每个批次,它都有独立的过滤器来与之进行转换,我修改代码如下: import torch import torch.nn.functional as F filters = torch.autograd.Variable(torch.randn(3,4,3,3)) inputs = torch.autograd.Variable(torch.randn(4,3,10,10)) out = F.conv2d(inputs, filters, p

在后面跟着问题

我可以知道,如果输入批次大小=4,对于每个批次,它都有独立的过滤器来与之进行转换,我修改代码如下:

import torch
import torch.nn.functional as F

filters = torch.autograd.Variable(torch.randn(3,4,3,3))
inputs = torch.autograd.Variable(torch.randn(4,3,10,10))
out = F.conv2d(inputs, filters, padding=1, groups=3)
我还有一个错误 RuntimeError:给定的组=3,大小的权重[3,4,3,3],期望输入[4,3,10,10]有12个通道,但得到了3个通道
如何解决它?

当您有
形状(3,4,3,3)
的过滤器时,预计通道数为12

这应该行得通

import torch
import torch.nn.functional as F
inputs = torch.autograd.Variable(torch.randn(3,12,10,10))
filters = torch.autograd.Variable(torch.randn(3,4,3,3))
out = F.conv2d(inputs, filters, padding=1, groups=3)

假设我们有一个大小为[4,3,10,10]的特征映射X和一个大小为[3,4,1,1]的内核。当进行普通卷积时,我们得到一个大小为[4,1,10,10]的特征图,而我正在寻找一种方法来得到一个大小为[4,3,10,10]的特征图。我想用conv2d进行元素乘法。@IvanLeung在提问之前,请检查有关维度含义的文档,此外,对于元素乘法,您可能只需要simple*或torch.mul。只是要注意广播的规则。谢谢你的回复。我知道elementwise mul可以由*完成。但是,snpe平台不支持*功能。因此,我需要这些技巧来让它发挥作用。