class_docstr: Mixin class adding a method for (soft) target net(s) synchronizations.
  
  - Adds the `update_target` method to the policy.
    Calling `update_target` updates all target Q-networks' weights from their
    respective "main" Q-networks, based on tau (smooth, partial updating).
class_docstr_tok: ["Mixin","class","adding","a","method","for","(","soft",")","target","net","(","s",")","synchronizations",".","-","Adds","the","`","update_target","`","method","to","the","policy",".","Calling","`","update_target","`","updates","all","target","Q-networks","'","weights","from","their","respective","``","main","''","Q-networks",",","based","on","tau","(","smooth",",","partial","updating",")","."]
code: def __init__(self):
      # Hard initial update from Q-net(s) to target Q-net(s).
      tau = self.config.get("tau", 1.0)
      self.update_target(tau=tau)
  
imports: from ray.rllib.policy.policy import Policy, PolicyState
  from ray.rllib.policy.sample_batch import SampleBatch
  from ray.rllib.policy.torch_policy import TorchPolicy
  from ray.rllib.utils.annotations import DeveloperAPI, override
  from ray.rllib.utils.framework import try_import_torch
  from ray.rllib.utils.schedules import PiecewiseSchedule
label_desc: Use image node_id 1 to create a new TargetNetworkMixin object  with example: obj = TargetNetworkMixin()