def soft_target_update(self):
    """
    Soft update model parameters:

    .. math::
      \\theta_target = \\tau \\times \\theta_local + (1 - \\tau) \\times \\theta_target ,
      with \\tau \\ll 1

    See https://arxiv.org/pdf/1509.02971.pdf
    """
    for target_param, local_param in zip(self.target.parameters(), self.local.parameters()):
      target_param.data.copy_(self.tau * local_param.data + (1.0 - self.tau) * target_param.data)