class_docstr: the network for evaluate values of state-action pairs: Q(s,a) 
class_docstr_tok: ["the","network","for","evaluate","values","of","state-action","pairs",":","Q","(","s",",","a",")"]
code: def __init__(self, num_inputs, num_actions, hidden_dim, init_w=3e-3):
      super(SoftQNetwork, self).__init__()
      input_dim = num_inputs + num_actions
      w_init = tf.keras.initializers.glorot_normal(
          seed=None
      )  # glorot initialization is better than uniform in practice
      # w_init = tf.random_uniform_initializer(-init_w, init_w)
  
      self.linear1 = Dense(
          n_units=hidden_dim,
          act=tf.nn.relu,
          W_init=w_init,
          in_channels=input_dim,
          name="q1",
      )
      self.linear2 = Dense(
          n_units=hidden_dim,
          act=tf.nn.relu,
          W_init=w_init,
          in_channels=hidden_dim,
          name="q2",
      )
      self.linear3 = Dense(
          n_units=1, W_init=w_init, in_channels=hidden_dim, name="q3"
      )
  
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 1 to create a new SoftQNetwork object from inherited base classes: Model with example: obj = SoftQNetwork(num_inputs, num_actions, hidden_dim, init_w)