docstr: Sets the network weights from the given list of weights tensors
code: def set_weights(self, weights, new_rate=1.0):
      """
      Sets the network weights from the given list of weights tensors
      """
      feed_dict = {}
      old_weights, new_weights = self.sess.run(
          [self.get_weights(), weights]
      )
      for placeholder_idx, new_weight in enumerate(new_weights):
          feed_dict[self.weights_placeholders[placeholder_idx]] = (
              new_rate * new_weight
              + (1 - new_rate) * old_weights[placeholder_idx]
          )
      self.sess.run(self.update_weights_from_list, feed_dict)
  
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 21 for calling the TensorFlowArchitecture obj's underlying member method code with example usage: obj.set_weights(weights, new_rate) without return types