old_contents: import theano
  import theano.tensor as T
  import numpy as np
  
  from utils.theano_utils import sharedX
  
  def uniform(shape, scale=0.05):
      return sharedX(np.random.uniform(low=-scale, high=scale, size=shape))
  
  def normal(shape, scale=0.05):
      return sharedX(np.random.randn(*shape) * scale)
  
  def lecun_uniform(shape):
      ''' Reference: LeCun 98, Efficient Backprop
          http://yann.lecun.com/exdb/publis/pdf/lecun-98b.pdf
      '''
      m = 1
      for s in shape:
          m *= s
      scale = 1./np.sqrt(m)
      return uniform(shape, scale)
  
  def orthogonal(shape, scale=1.1):
      ''' From Lasagne
      '''
      flat_shape = (shape[0], np.prod(shape[1:]))
      a = np.random.normal(0.0, 1.0, flat_shape)
      u, _, v = np.linalg.svd(a, full_matrices=False)
      q = u if u.shape == flat_shape else v # pick the one with the correct shape
      q = q.reshape(shape)
      return sharedX(scale * q[:shape[0], :shape[1]])
  
  
  from utils.generic_utils import get_from_module
  def get(identifier):
      return get_from_module(identifier, globals(), 'initialization')
new_contents: import theano
  import theano.tensor as T
  import numpy as np
  
  from utils.theano_utils import sharedX, shared_zeros
  
  def uniform(shape, scale=0.05):
      return sharedX(np.random.uniform(low=-scale, high=scale, size=shape))
  
  def normal(shape, scale=0.05):
      return sharedX(np.random.randn(*shape) * scale)
  
  def lecun_uniform(shape):
      ''' Reference: LeCun 98, Efficient Backprop
          http://yann.lecun.com/exdb/publis/pdf/lecun-98b.pdf
      '''
      m = 1
      for s in shape:
          m *= s
      scale = 1./np.sqrt(m)
      return uniform(shape, scale)
  
  def orthogonal(shape, scale=1.1):
      ''' From Lasagne
      '''
      flat_shape = (shape[0], np.prod(shape[1:]))
      a = np.random.normal(0.0, 1.0, flat_shape)
      u, _, v = np.linalg.svd(a, full_matrices=False)
      q = u if u.shape == flat_shape else v # pick the one with the correct shape
      q = q.reshape(shape)
      return sharedX(scale * q[:shape[0], :shape[1]])
  
  def zero(shape):
      return shared_zeros(shape)
  
  
  from utils.generic_utils import get_from_module
  def get(identifier):
      return get_from_module(identifier, globals(), 'initialization')
subject: Add 'zero' initialization