fml gradient descent is messing up the weight sizes because the gradient is calculated wrong and has the wrong dimensions.