def __init__(self, size, eps=<NUM_LIT>, default_clip_range=np.inf, sess=None):
self.size = size<EOL>self.eps = eps<EOL>self.default_clip_range = default_clip_range<EOL>self.sess = sess if sess is not None else tf.get_default_session()<EOL>self.local_sum = np.zeros(self.size, np.float32)<EOL>self.local_sumsq = np.zeros(self.size, np.float32)<EOL>self.local_count = np.zeros(<NUM_LIT:1>, np.float32)<EOL>self.sum_tf = tf.get_variable(<EOL>initializer=tf.zeros_initializer(), shape=self.local_sum.shape, name='<STR_LIT>',<EOL>trainable=False, dtype=tf.float32)<EOL>self.sumsq_tf = tf.get_variable(<EOL>initializer=tf.zeros_initializer(), shape=self.local_sumsq.shape, name='<STR_LIT>',<EOL>trainable=False, dtype=tf.float32)<EOL>self.count_tf = tf.get_variable(<EOL>initializer=tf.ones_initializer(), shape=self.local_count.shape, name='<STR_LIT:count>',<EOL>trainable=False, dtype=tf.float32)<EOL>self.mean = tf.get_variable(<EOL>initializer=tf.zeros_initializer(), shape=(self.size,), name='<STR_LIT>',<EOL>trainable=False, dtype=tf.float32)<EOL>self.std = tf.get_variable(<EOL>initializer=tf.ones_initializer(), shape=(self.size,), name='<STR_LIT>',<EOL>trainable=False, dtype=tf.float32)<EOL>self.count_pl = tf.placeholder(name='<STR_LIT>', shape=(<NUM_LIT:1>,), dtype=tf.float32)<EOL>self.sum_pl = tf.placeholder(name='<STR_LIT>', shape=(self.size,), dtype=tf.float32)<EOL>self.sumsq_pl = tf.placeholder(name='<STR_LIT>', shape=(self.size,), dtype=tf.float32)<EOL>self.update_op = tf.group(<EOL>self.count_tf.assign_add(self.count_pl),<EOL>self.sum_tf.assign_add(self.sum_pl),<EOL>self.sumsq_tf.assign_add(self.sumsq_pl)<EOL>)<EOL>self.recompute_op = tf.group(<EOL>tf.assign(self.mean, self.sum_tf / self.count_tf),<EOL>tf.assign(self.std, tf.sqrt(tf.maximum(<EOL>tf.square(self.eps),<EOL>self.sumsq_tf / self.count_tf - tf.square(self.sum_tf / self.count_tf)<EOL>))),<EOL>)<EOL>self.lock = threading.Lock()<EOL>
A normalizer that ensures that observations are approximately distributed according to
        a standard Normal distribution (i.e. have mean zero and variance one).

        Args:
            size (int): the size of the observation to be normalized
            eps (float): a small constant that avoids underflows
            default_clip_range (float): normalized observations are clipped to be in
                [-default_clip_range, default_clip_range]
            sess (object): the TensorFlow session to be used