def METHOD_NAME(self, info, advantages):
    scope = alf.summary.scope(self._name)
    importance_ratio, importance_ratio_clipped = value_ops.action_importance_ratio(
        action_distribution=info.action_distribution,
        rollout_action_distribution=info.rollout_action_distribution,
        action=info.action,
        rollout_log_prob=info.rollout_log_prob,
        clipping_mode='double_sided',
        scope=scope,
        importance_ratio_clipping=self._importance_ratio_clipping,
        log_prob_clipping=self._log_prob_clipping,
        check_numerics=self._check_numerics,
        debug_summaries=self._debug_summaries)
    # Pessimistically choose the maximum objective value for clipped and
    # unclipped importance ratios.
    pg_objective = -importance_ratio * advantages
    pg_objective_clipped = -importance_ratio_clipped * advantages
    policy_gradient_loss = torch.max(pg_objective, pg_objective_clipped)
    if self._debug_summaries and alf.summary.should_record_summaries():
        with scope:
            alf.summary.histogram('pg_objective', pg_objective)
            alf.summary.histogram('pg_objective_clipped',
                                  pg_objective_clipped)
    if self._check_numerics:
        assert torch.all(torch.isfinite(policy_gradient_loss))
    return policy_gradient_loss