docstr: Create an initial list of tensors to fetch in each training iteration
  :return: None
code: def _set_initial_fetch_list(self):
      """
      Create an initial list of tensors to fetch in each training iteration
      :return: None
      """
      self.train_fetches = [self.gradients_norm]
      if self.network_parameters.clip_gradients:
          self.train_fetches.append(self.clipped_grads)
      else:
          self.train_fetches.append(self.tensor_gradients)
      self.train_fetches += [self.total_loss, self.losses]
      if self.middleware.__class__.__name__ == "LSTMMiddleware":
          self.train_fetches.append(self.middleware.state_out)
      self.additional_fetches_start_idx = len(self.train_fetches)
  
imports: import os
  import time
  from typing import Any, List, Tuple, Dict
  import numpy
  import tensorflow
  from rl_coach.architectures.architecture import Architecture
  from rl_coach.architectures.tensorflow_components.savers import GlobalVariableSaver
  from rl_coach.base_parameters import AgentParameters, DistributedTaskParameters
  from rl_coach.core_types import GradientClippingMethod
  from rl_coach.saver import SaverCollection
  from rl_coach.spaces import SpacesDefinition
  from rl_coach.utils import force_list, squeeze_list, start_shell_command_and_wait
label_desc: Use image node_id 3 for calling the TensorFlowArchitecture obj's underlying member method code with example usage: obj._set_initial_fetch_list() without return types