in spinup/algos/tf1/sac/core.py [0:0]
def mlp_actor_critic(x, a, hidden_sizes=(256,256), activation=tf.nn.relu,
output_activation=None, policy=mlp_gaussian_policy, action_space=None):
# policy
with tf.variable_scope('pi'):
mu, pi, logp_pi = policy(x, a, hidden_sizes, activation, output_activation)
mu, pi, logp_pi = apply_squashing_func(mu, pi, logp_pi)
# make sure actions are in correct range
action_scale = action_space.high[0]
mu *= action_scale
pi *= action_scale
# vfs
vf_mlp = lambda x : tf.squeeze(mlp(x, list(hidden_sizes)+[1], activation, None), axis=1)
with tf.variable_scope('q1'):
q1 = vf_mlp(tf.concat([x,a], axis=-1))
with tf.variable_scope('q2'):
q2 = vf_mlp(tf.concat([x,a], axis=-1))
return mu, pi, logp_pi, q1, q2