class_docstr: PyTorch policy class used with Impala.
class_docstr_tok: ["PyTorch","policy","class","used","with","Impala","."]
code: def stats_fn(self, train_batch: SampleBatch) -> Dict[str, TensorType]:
      return convert_to_numpy(
          {
              "cur_lr": self.cur_lr,
              "total_loss": torch.mean(
                  torch.stack(self.get_tower_stats("total_loss"))
              ),
              "policy_loss": torch.mean(
                  torch.stack(self.get_tower_stats("pi_loss"))
              ),
              "entropy": torch.mean(
                  torch.stack(self.get_tower_stats("mean_entropy"))
              ),
              "entropy_coeff": self.entropy_coeff,
              "var_gnorm": global_norm(
                  self.model.trainable_variables()
              ),
              "vf_loss": torch.mean(
                  torch.stack(self.get_tower_stats("vf_loss"))
              ),
              "vf_explained_var": torch.mean(
                  torch.stack(self.get_tower_stats("vf_explained_var"))
              ),
          }
      )
  
imports: import gymnasium
  import logging
  import numpy
  from typing import Dict, List, Optional, Type, Union
  import ray
  from ray.rllib.evaluation.episode import Episode
  from ray.rllib.evaluation.postprocessing import compute_bootstrap_value
  from ray.rllib.models.modelv2 import ModelV2
  from ray.rllib.models.action_dist import ActionDistribution
  from ray.rllib.models.torch.torch_action_dist import TorchCategorical
  from ray.rllib.policy.sample_batch import SampleBatch
  from ray.rllib.policy.torch_mixins import EntropyCoeffSchedule, LearningRateSchedule, ValueNetworkMixin
  from ray.rllib.policy.torch_policy_v2 import TorchPolicyV2
  from ray.rllib.utils.annotations import override
  from ray.rllib.utils.framework import try_import_torch
  from ray.rllib.utils.numpy import convert_to_numpy
  from ray.rllib.utils.torch_utils import apply_grad_clipping, explained_variance, global_norm, sequence_mask
  from ray.rllib.utils.typing import TensorType
label_desc: Use image node_id 3 for calling the ImpalaTorchPolicy obj's underlying member method code with example usage: obj.stats_fn(train_batch) and returns: convert_to_numpy