def create_nn(self, features, name=None): if name is None: name = self.critic_name with tf.variable_scope(name + '_fc_1'): fc1 = layer(features, 64) with tf.variable_scope(name + '_fc_2'): fc2 = layer(fc1, 64) with tf.variable_scope(name + '_fc_3'): fc3 = layer(fc2, 64) with tf.variable_scope(name + '_fc_4'): fc4 = layer(fc3, 1, is_output=True) return fc4
def create_nn(self, features, name=None): if name is None: name = self.actor_name with tf.variable_scope(name + '_fc_1'): fc1 = layer(features, 64) with tf.variable_scope(name + '_fc_2'): fc2 = layer(fc1, 64) with tf.variable_scope(name + '_fc_3'): fc3 = layer(fc2, 64) with tf.variable_scope(name + '_fc_4'): fc4 = layer(fc3, self.action_space_size, is_output=True) output = tf.tanh(fc4) * self.action_space_bounds + self.action_offset return output
def create_nn(self, features, name=None): if name is None: name = self.critic_name with tf.variable_scope(name + '_fc_1'): fc1 = layer(features, 64) with tf.variable_scope(name + '_fc_2'): fc2 = layer(fc1, 64) with tf.variable_scope(name + '_fc_3'): fc3 = layer(fc2, 64) with tf.variable_scope(name + '_fc_4'): fc4 = layer(fc3, 1, is_output=True) # A q_offset is used to give the critic function an optimistic initialization near 0 output = tf.sigmoid(fc4 + self.q_offset) * self.q_limit return output