hucc/agents/hsd3.py [1156:1194]:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
            )
        if self._n_updates % 10 == 1:
            self.tbw.add_histogram(
                'HealthHi/PiD',
                th.multinomial(
                    dist_d.probs,
                    int(np.ceil(1000 / self._bsz)),
                    replacement=True,
                ).view(-1),
                self._n_samples,
                bins=nd,
            )
        if self._n_updates % 100 == 1:
            self.tbw.add_scalars(
                'HealthHi/GradNorms',
                {
                    k: v.grad.norm().item()
                    for k, v in self._model.named_parameters()
                    if v.grad is not None
                },
                self.n_samples,
            )

        td_err1 = q1_loss.sqrt().mean().item()
        td_err2 = q2_loss.sqrt().mean().item()
        td_err = (td_err1 + td_err2) / 2
        self.tbw_add_scalar('HealthHi/AbsTDErrorTrain', td_err)
        self.tbw_add_scalar('HealthHi/AbsTDErrorTrain1', td_err1)
        self.tbw_add_scalar('HealthHi/AbsTDErrorTrain2', td_err2)

        avg_cr = th.cat(self._cur_rewards).mean().item()
        log_stats = [
            ('Sample', f'{self._n_samples}'),
            ('hi: up', f'{self._n_updates*self._num_updates}'),
            ('avg rew', f'{avg_cr:+0.3f}'),
            ('pi loss', f'{pi_loss.item():+.03f}'),
            ('q loss', f'{q_loss.item():+.03f}'),
            (
                'entropy',
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -



hucc/agents/hsdb.py [695:733]:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
            )
        if self._n_updates % 10 == 1:
            self.tbw.add_histogram(
                'HealthHi/PiD',
                th.multinomial(
                    dist_d.probs,
                    int(np.ceil(1000 / self._bsz)),
                    replacement=True,
                ).view(-1),
                self._n_samples,
                bins=nd,
            )
        if self._n_updates % 100 == 1:
            self.tbw.add_scalars(
                'HealthHi/GradNorms',
                {
                    k: v.grad.norm().item()
                    for k, v in self._model.named_parameters()
                    if v.grad is not None
                },
                self.n_samples,
            )

        td_err1 = q1_loss.sqrt().mean().item()
        td_err2 = q2_loss.sqrt().mean().item()
        td_err = (td_err1 + td_err2) / 2
        self.tbw_add_scalar('HealthHi/AbsTDErrorTrain', td_err)
        self.tbw_add_scalar('HealthHi/AbsTDErrorTrain1', td_err1)
        self.tbw_add_scalar('HealthHi/AbsTDErrorTrain2', td_err2)

        avg_cr = th.cat(self._cur_rewards).mean().item()
        log_stats = [
            ('Sample', f'{self._n_samples}'),
            ('hi: up', f'{self._n_updates*self._num_updates}'),
            ('avg rew', f'{avg_cr:+0.3f}'),
            ('pi loss', f'{pi_loss.item():+.03f}'),
            ('q loss', f'{q_loss.item():+.03f}'),
            (
                'entropy',
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -



