If we're going to take the time to refactor all of the weight initialization, let's try to avoid having any code duplication after the refactor. Could we do a class that makes tensors that are sparse across the requested axis, and use the same one to do both the MatrixMul and the Conv weights?