My bad I misread your post 
While I’m still here let me try and be a little helpful, but trying to understand the concept of spatial separable convolutions from here 4:
You need to be able to factor your initial kernel into two different kernels. Since the kernels are real valued floating points learnt from the data, there may not be a solution to decompose every real-valued square NXN matrix into NX1 and 1XN vectors. (Ref 2)
To have an autograd engine enforce this between two layers would seem very complicated as well even if it were possible, it seems like this is something that would only be possible on the forward pass for pre-determined filters.
But I am unaware if there is a way to do so regardless, just thought this might help