class_docstr: Implementation of 51 Categorical DQN (C51)
  
  See https://arxiv.org/abs/1707.06887 for details
class_docstr_tok: ["Implementation","of","51","Categorical","DQN","(","C51",")","See","https",":","\/\/arxiv.org\/abs\/1707.06887","for","details"]
code: def configure_optimizers(self):
      optimizers = [
          self.q_network_optimizer.make_optimizer_scheduler(
              self.q_network.parameters()
          )
      ]
      # soft-update
      target_params = list(self.q_network_target.parameters())
      source_params = list(self.q_network.parameters())
      optimizers.append(
          SoftUpdate.make_optimizer_scheduler(
              target_params, source_params, tau=self.tau
          )
      )
      return optimizers
  
file_path: ReAgent/reagent/training/c51_trainer.py
imports: from typing import List
  import reagent.core.types
  import torch
  from reagent.core.configuration import resolve_defaults
  from reagent.core.dataclasses import field
  from reagent.core.parameters import RLParameters
  from reagent.optimizer import Optimizer__Union, SoftUpdate
  from reagent.training.reagent_lightning_module import ReAgentLightningModule
  from reagent.training.rl_trainer_pytorch import RLTrainerMixin
label_desc: Use image node_id 2 for calling the C51Trainer obj's underlying member method code with example usage: obj.configure_optimizers() and returns: optimizers