def __init__()

in robosumo/policy_zoo/policy.py [0:0]


    def __init__(self, scope, *, ob_space, ac_space, hiddens,
                 normalize=False,
                 reuse=False):
        self.recurrent = False
        self.normalized = normalize

        with tf.variable_scope(scope, reuse=reuse):
            self.scope = tf.get_variable_scope().name

            self.observation_ph = tf.placeholder(
                tf.float32, [None] + list(ob_space.shape), name="observation")
            self.taken_action_ph = tf.placeholder(
                tf.float32, [None, ac_space.shape[0]], name="taken_action")
            self.stochastic_ph = tf.placeholder(tf.bool, (), name="stochastic")

            if self.normalized:
                if self.normalized != 'ob':
                    self.ret_rms = RunningMeanStd(scope="retfilter")
                self.ob_rms = RunningMeanStd(
                    scope="obsfilter", shape=ob_space.shape)

            # Observation filtering
            obz = self.observation_ph
            if self.normalized:
                obz = tf.clip_by_value((self.observation_ph - self.ob_rms.mean) / self.ob_rms.std, -5.0, 5.0)

            # Value
            last_out = obz
            for i, hid_size in enumerate(hiddens):
                last_out = tf.nn.tanh(
                    dense(last_out, hid_size, "vffc%i" % (i + 1)))
            self.vpredz = dense(last_out, 1, "vffinal")[:, 0]

            self.vpred = self.vpredz
            if self.normalized and self.normalized != 'ob':
                self.vpred = self.vpredz * self.ret_rms.std + self.ret_rms.mean

            # Policy
            last_out = obz
            for i, hid_size in enumerate(hiddens):
                last_out = tf.nn.tanh(
                    dense(last_out, hid_size, "polfc%i" % (i + 1)))
            mean = dense(last_out, ac_space.shape[0], "polfinal")
            logstd = tf.get_variable(
                name="logstd",
                shape=[1, ac_space.shape[0]],
                initializer=tf.zeros_initializer())

            self.pd = DiagonalGaussian(mean, logstd)
            self.sampled_action = switch(
                self.stochastic_ph, self.pd.sample(), self.pd.mode())