def trainable_gamma(shape, min_concentration=<NUM_LIT>, min_scale=<NUM_LIT>, name=None):
with tf.compat.v1.variable_scope(None, default_name="<STR_LIT>"):<EOL><INDENT>unconstrained_concentration = tf.compat.v1.get_variable(<EOL>"<STR_LIT>",<EOL>shape,<EOL>initializer=tf.compat.v1.initializers.random_normal(<EOL>mean=<NUM_LIT:0.5>, stddev=<NUM_LIT:0.1>))<EOL>unconstrained_scale = tf.compat.v1.get_variable(<EOL>"<STR_LIT>",<EOL>shape,<EOL>initializer=tf.compat.v1.initializers.random_normal(stddev=<NUM_LIT:0.1>))<EOL>concentration = tf.maximum(tf.nn.softplus(unconstrained_concentration),<EOL>min_concentration)<EOL>rate = tf.maximum(<NUM_LIT:1.> / tf.nn.softplus(unconstrained_scale), <NUM_LIT:1.> / min_scale)<EOL>rv = ed.Gamma(concentration=concentration, rate=rate, name=name)<EOL>return rv<EOL><DEDENT>
Learnable Gamma via concentration and scale parameterization.