code: def _add_advantage_and_value_target_to_episode(episode, gamma, lambd):
      """Add advantage and value target values to an episode."""
      adv = 0.0
      for transition in reversed(episode):
          td_err = (
              transition["reward"]
              + (
                  gamma
                  * transition["nonterminal"]
                  * transition["next_v_pred"]
              )
              - transition["v_pred"]
          )
          adv = td_err + gamma * lambd * adv
          transition["adv"] = adv
          transition["v_teacher"] = adv + transition["v_pred"]
  
imports: import collections
  import itertools
  import random
  import numpy
  import torch
  import torch.nn.functional
  import pfrl
  from pfrl import agent
  from pfrl.utils.batch_states import batch_states
  from pfrl.utils.mode_of_distribution import mode_of_distribution
  from pfrl.utils.recurrent import concatenate_recurrent_states, flatten_sequences_time_first, get_recurrent_state_at, mask_recurrent_state_at, one_step_forward, pack_and_forward
label_desc: Use image node_id 3 for calling a global function with example usage: _add_advantage_and_value_target_to_episode(episode, gamma, lambd) without return types