def mu_sigma_layer(inputs, n_outputs):
"""
Create a layer that makes a mu and sigma,
e.g. to use in continuous action spaces.
"""
mu = tf.contrib.layers.fully_connected(
inputs=inputs,
num_outputs=n_outputs,
activation_fn=None,
weights_initializer=tf.truncated_normal_initializer(mean=0.0, stddev=0.02),
biases_initializer=tf.zeros_initializer(),
scope="mu")
mu = tf.squeeze(mu, name="mu")
sigma = tf.contrib.layers.fully_connected(
inputs=inputs,
num_outputs=n_outputs,
activation_fn=None,
weights_initializer=tf.truncated_normal_initializer(mean=0.0, stddev=0.02),
biases_initializer=tf.zeros_initializer(),
scope="sigma")
sigma = tf.squeeze(sigma)
sigma = tf.nn.softplus(sigma) + 1e-5
return mu, sigma
评论列表
文章目录