code: def save(self):  # save trained weights
      path = os.path.join("model", "_".join([ALG_NAME, ENV_ID]))
      if not os.path.exists(path):
          os.makedirs(path)
      extend_path = lambda s: os.path.join(path, s)
      tl.files.save_npz(
          self.soft_q_net1.trainable_weights,
          extend_path("model_q_net1.npz"),
      )
      tl.files.save_npz(
          self.soft_q_net2.trainable_weights,
          extend_path("model_q_net2.npz"),
      )
      tl.files.save_npz(
          self.target_soft_q_net1.trainable_weights,
          extend_path("model_target_q_net1.npz"),
      )
      tl.files.save_npz(
          self.target_soft_q_net2.trainable_weights,
          extend_path("model_target_q_net2.npz"),
      )
      tl.files.save_npz(
          self.policy_net.trainable_weights,
          extend_path("model_policy_net.npz"),
      )
      np.save(extend_path("log_alpha.npy"), self.log_alpha.numpy())
  
imports: import argparse
  import os
  import random
  import time
  import gym
  import matplotlib.pyplot
  import numpy
  import tensorflow
  import tensorflow_probability
  import tensorlayer
  from tensorlayer.layers import Dense
  from tensorlayer.models import Model
label_desc: Use image node_id 5 for calling the SAC obj's underlying member method code with example usage: obj.save() without return types