import tensorflow as tf

    def update(self, state, target, a_his, sess=None):
        sess = sess or tf.get_default_session()
        feed_dict = { self.state: state, self.target: target, self.a_his: a_his  }
        _, loss = sess.run([self.train_op, self.loss], feed_dict)
        return loss

class ValueEstimator_Pendulum():
    def __init__(self, learning_rate=0.1, par_idx=0,scope="value_estimator"):
        w_init = tf.random_normal_initializer(0.,.1);
        with tf.variable_scope(scope+"_"+str(par_idx)):
            # state and target
            self.state = tf.placeholder(tf.float32, [None,num_state], "state")
            self.target = tf.placeholder(tf.float32, [None,1], name="target")

            # layers
            l_c = tf.layers.dense(self.state, 100, tf.nn.relu6, kernel_initializer=w_init, name='lc')
