input: Write a function to normalize a feature matrix using L2 normalization.
  assert np.allclose(l2_feat_norm(np.array([[1, 2], [3, 4]])), np.array([[0.4472136, 0.89442719], [0.6, 0.8]]))
  assert np.allclose(l2_feat_norm(np.array([[0, 0], [1, 0]])), np.array([[0., 0.], [1., 0.]]))
  assert np.allclose(l2_feat_norm(np.array([[1, 1, 1], [2, 2, 2]])), np.array([[0.57735027, 0.57735027, 0.57735027], [0.57735027, 0.57735027, 0.57735027]]))
output: def l2_feat_norm(matrix):
      norm = np.linalg.norm(matrix, axis=1, keepdims=True)
      normalized_matrix = matrix / norm
      return normalized_matrix