Solved by Eta_C in post #2 
              
              
                kernel_size K, in_channels M, out_channels N, assume that you have no bias. 
naive convolution has KKMN parameters. 
separable convolution has KKM + MN parameters. 
Let me try to caculate KKMN - (KKM + MN). 
nn.Conv2d(1, 4, kernel_size=2, padding=1)

2x2x4x1 - 2x2x4 - 4x1 = -4 
nn.Conv2d(4, 8, kerne…