def _adapt_objective_sym(self, action_sym, adv_sym, dist_info_old_sym, dist_info_new_sym):
    if (self.inner_type == 'likelihood_ratio'):
        with tf.variable_scope('likelihood_ratio'):
            likelihood_ratio_adapt = self.policy.distribution.likelihood_ratio_sym(action_sym, dist_info_old_sym, dist_info_new_sym)
        with tf.variable_scope('surrogate_loss'):
            surr_obj_adapt = (- tf.reduce_mean((likelihood_ratio_adapt * adv_sym)))
    elif (self.inner_type == 'log_likelihood'):
        with tf.variable_scope('log_likelihood'):
            log_likelihood_adapt = self.policy.distribution.log_likelihood_sym(action_sym, dist_info_new_sym)
        with tf.variable_scope('surrogate_loss'):
            surr_obj_adapt = (- tf.reduce_mean((log_likelihood_adapt * adv_sym)))
    else:
        raise NotImplementedError
    return surr_obj_adapt
def _adapt_objective_sym(self, action_sym, adv_sym, dist_info_old_sym, dist_info_new_sym):
    if (self.inner_type == 'likelihood_ratio'):
        with tf.variable_scope('likelihood_ratio'):
            likelihood_ratio_adapt = self.policy.distribution.likelihood_ratio_sym(action_sym, dist_info_old_sym, dist_info_new_sym)
        with tf.variable_scope('surrogate_loss'):
            surr_obj_adapt = (- tf.reduce_mean((likelihood_ratio_adapt * adv_sym)))
    elif (self.inner_type == 'log_likelihood'):
        with tf.variable_scope('log_likelihood'):
            log_likelihood_adapt = self.policy.distribution.log_likelihood_sym(action_sym, dist_info_new_sym)
        with tf.variable_scope('surrogate_loss'):
            surr_obj_adapt = (- tf.reduce_mean((log_likelihood_adapt * adv_sym)))
    else:
        raise NotImplementedError
    return surr_obj_adapt