you can still use function approach
class NovelConv(nn.Module):
    def __init__(self):
        self.W = nn.Parameter(torch.Tensor([[w1,w2,w3],[w4,0,0],[w5,0,0]]))
    def forward(self,x):
        return F.conv2d(x, self.W)

Backpropogation will work by doing this