def np_normal(shp, random_state, scale=0.01):
  """Builds a numpy variable filled with normal random values.

  Args:
    shp: tuple of ints or tuple of tuples
      shape of values to initialize
      tuple of ints should be single shape
      tuple of tuples is primarily for convnets and should be of form
      ((n_in_kernels, kernel_width, kernel_height),
       (n_out_kernels, kernel_width, kernel_height))
    random_state: numpy.random.RandomState() object
    scale: float (default 0.01)
      default of 0.01 results in normal random values with variance 0.01

  Returns:
    initialized_normal, array-like
      Array-like of normal random values the same size as shape parameter
  """
  if isinstance(shp[0], tuple):
    shp = (shp[1][0], shp[0][0]) + shp[1][1:]
  return (scale * random_state.randn(*shp)).astype('float32')