Solved by ptrblck in post #8 
              
              
                Yes, the first three filters would be used for the first input channel, then the second 3 filters for the second input channel, etc. 
You can always manually verify it: 
conv_1 = nn.Conv2d(3, 9, 3, 1, 1, groups=3, bias=False)
x = torch.randn(1, 3, 4, 4)
out_ref = conv_1(x)

x0, x1, x2 = x.split(1, d…