A wrapper around `tf.layers.Dense`. One difference to maintain backward-compatibility: Default weight initializer is variance_scaling_initializer(2.0). Variable Names: * ``W``: weights of shape [in_dim, out_dim] * ``b``: bias
(
inputs,
units,
activation=None,
use_bias=True,
kernel_initializer=None,
bias_initializer=tf.zeros_initializer(),
kernel_regularizer=None,
bias_regularizer=None,
activity_regularizer=None)
| 27 | args_names=['units'], |
| 28 | name_mapping={'out_dim': 'units'}) |
| 29 | def FullyConnected( |
| 30 | inputs, |
| 31 | units, |
| 32 | activation=None, |
| 33 | use_bias=True, |
| 34 | kernel_initializer=None, |
| 35 | bias_initializer=tf.zeros_initializer(), |
| 36 | kernel_regularizer=None, |
| 37 | bias_regularizer=None, |
| 38 | activity_regularizer=None): |
| 39 | """ |
| 40 | A wrapper around `tf.layers.Dense`. |
| 41 | One difference to maintain backward-compatibility: |
| 42 | Default weight initializer is variance_scaling_initializer(2.0). |
| 43 | |
| 44 | Variable Names: |
| 45 | |
| 46 | * ``W``: weights of shape [in_dim, out_dim] |
| 47 | * ``b``: bias |
| 48 | """ |
| 49 | if kernel_initializer is None: |
| 50 | if get_tf_version_tuple() <= (1, 12): |
| 51 | kernel_initializer = tf.contrib.layers.variance_scaling_initializer(2.0) # deprecated |
| 52 | else: |
| 53 | kernel_initializer = tf.keras.initializers.VarianceScaling(2.0, distribution='untruncated_normal') |
| 54 | |
| 55 | inputs = batch_flatten(inputs) |
| 56 | with rename_get_variable({'kernel': 'W', 'bias': 'b'}): |
| 57 | layer = tf.layers.Dense( |
| 58 | units=units, |
| 59 | activation=activation, |
| 60 | use_bias=use_bias, |
| 61 | kernel_initializer=kernel_initializer, |
| 62 | bias_initializer=bias_initializer, |
| 63 | kernel_regularizer=kernel_regularizer, |
| 64 | bias_regularizer=bias_regularizer, |
| 65 | activity_regularizer=activity_regularizer, |
| 66 | _reuse=tf.get_variable_scope().reuse) |
| 67 | ret = layer.apply(inputs, scope=tf.get_variable_scope()) |
| 68 | ret = tf.identity(ret, name='output') |
| 69 | |
| 70 | ret.variables = VariableHolder(W=layer.kernel) |
| 71 | if use_bias: |
| 72 | ret.variables.b = layer.bias |
| 73 | return ret |
no test coverage detected