[TOC]
Ops for building neural network layers, regularizers, summaries, etc.
This package provides several ops that take care of creating variables that are used internally in a consistent way and provide the building blocks for many common machine learning algorithms.
tf.contrib.layers.convolution2d(x, num_output_channels, kernel_size, activation_fn=None, stride=(1, 1), padding='SAME', weight_init=_initializer, bias_init=_initializer, name=None, weight_collections=None, bias_collections=None, output_collections=None, weight_regularizer=None, bias_regularizer=None) {#convolution2d}
Adds the parameters for a conv2d layer and returns the output.
A neural network convolution layer is generally defined as:
\(y = f(conv2d(w, x) + b)\) where f is given by activation_fn,
conv2d is tf.nn.conv2d and x has shape
[batch, height, width, channels]. The output of this op is of shape
[batch, out_height, out_width, num_output_channels], where out_width and
out_height are determined by the padding argument. See conv2D for
details.
This op creates w and optionally b and adds various summaries that can be
useful for visualizing learning or diagnosing training problems. Bias can be
disabled by setting bias_init to None.
The variable creation is compatible with tf.variable_scope and so can be
reused with tf.variable_scope or tf.make_template.
Most of the details of variable creation can be controlled by specifying the
initializers (weight_init and bias_init) and which collections to place
the created variables in (weight_collections and bias_collections).
A per layer regularization can be specified by setting weight_regularizer.
This is only applied to weights and not the bias.
x: A 4-D inputTensor.num_output_channels: The number of output channels (i.e. the size of the last dimension of the output).kernel_size: A length 2listortuplecontaining the kernel size.activation_fn: A function that requires a single Tensor that is applied as a non-linearity.stride: A length 2listortuplespecifying the stride of the sliding window across the image.padding: Astringfrom: "SAME", "VALID". The type of padding algorithm to use.weight_init: An optional initialization. If not specified, uses Xavier initialization (seetf.learn.xavier_initializer).bias_init: An initializer for the bias, defaults to 0. Set toNonein order to disable bias.name: The name for this operation is used to name operations and to find variables. If specified it must be unique for this scope, otherwise a unique name starting with "convolution2d" will be created. Seetf.variable_op_scopefor details.weight_collections: List of graph collections to which weights are added.bias_collections: List of graph collections to which biases are added.output_collections: List of graph collections to which outputs are added.weight_regularizer: A regularizer like the result ofl1_regularizerorl2_regularizer. Used for weights.bias_regularizer: A regularizer like the result ofl1_regularizerorl2_regularizer. Used for biases.
The result of applying a 2-D convolutional layer.
ValueError: Ifkernel_sizeorstrideare not length 2.
tf.contrib.layers.fully_connected(x, num_output_units, activation_fn=None, weight_init=_initializer, bias_init=_initializer, name=None, weight_collections=('weights',), bias_collections=('biases',), output_collections=('activations',), weight_regularizer=None, bias_regularizer=None) {#fully_connected}
Adds the parameters for a fully connected layer and returns the output.
A fully connected layer is generally defined as a matrix multiply:
y = f(w * x + b) where f is given by activation_fn. If
activation_fn is None, the result of y = w * x + b is
returned.
This op creates w and optionally b. Bias (b) can be disabled by setting
bias_init to None.
The variable creation is compatible with tf.variable_scope and so can be
reused with tf.variable_scope or tf.make_template.
Most of the details of variable creation can be controlled by specifying the
initializers (weight_init and bias_init) and which in collections to place
the created variables (weight_collections and bias_collections; note that
the variables are always added to the VARIABLES collection). The output of
the layer can be placed in custom collections using output_collections.
The collections arguments default to WEIGHTS, BIASES and ACTIVATIONS,
respectively.
A per layer regularization can be specified by setting weight_regularizer
and bias_regularizer, which are applied to the weights and biases
respectively, and whose output is added to the REGULARIZATION_LOSSES
collection.
x: The inputTensor.num_output_units: The size of the output.activation_fn: A function that requires a single Tensor that is applied as a non-linearity. If None is used, do not apply any activation.weight_init: An optional weight initialization, defaults toxavier_initializer.bias_init: An initializer for the bias, defaults to 0. Set toNonein order to disable bias.name: The name for this operation is used to name operations and to find variables. If specified it must be unique for this scope, otherwise a unique name starting with "fully_connected" will be created. Seetf.variable_op_scopefor details.weight_collections: List of graph collections to which weights are added.bias_collections: List of graph collections to which biases are added.output_collections: List of graph collections to which outputs are added.weight_regularizer: A regularizer like the result ofl1_regularizerorl2_regularizer. Used for weights.bias_regularizer: A regularizer like the result ofl1_regularizerorl2_regularizer. Used for biases.
The output of the fully connected layer.
Aliases for fully_connected which set a default activation function are
available: relu, relu6 and linear.
Regularization can help prevent overfitting. These have the signature
fn(weights). The loss is typically added to tf.GraphKeys.REGULARIZATION_LOSS
Returns a function that can be used to apply L1 regularization to weights.
L1 regularization encourages sparsity.
scale: A scalar multiplierTensor. 0.0 disables the regularizer.
A function with signature l1(weights, name=None) that apply L1
regularization.
ValueError: If scale is outside of the range [0.0, 1.0] or if scale is not a float.
Returns a function that can be used to apply L2 regularization to weights.
Small values of L2 can help prevent overfitting the training data.
scale: A scalar multiplierTensor. 0.0 disables the regularizer.
A function with signature l2(weights, name=None) that applies L2
regularization.
ValueError: If scale is outside of the range [0.0, 1.0] or if scale is not a float.
Initializers are used to initialize variables with sensible values given their size, data type, and purpose.
tf.contrib.layers.xavier_initializer(uniform=True, seed=None, dtype=tf.float32) {#xavier_initializer}
Returns an initializer performing "Xavier" initialization for weights.
This function implements the weight initialization from:
Xavier Glorot and Yoshua Bengio (2010): Understanding the difficulty of training deep feedforward neural networks. International conference on artificial intelligence and statistics.
This initializer is designed to keep the scale of the gradients roughly the
same in all layers. In uniform distribution this ends up being the range:
x = sqrt(6. / (in + out)); [-x, x] and for normal distribution a standard
deviation of sqrt(3. / (in + out)) is used.
The returned initializer assumes that the shape of the weight matrix to be
initialized is [in, out].
uniform: Whether to use uniform or normal distributed random initialization.seed: A Python integer. Used to create random seeds. Seeset_random_seedfor behavior.dtype: The data type. Only floating point types are supported.
An initializer for a 2-D weight matrix.
TypeError: If dtype is not a floating point type.
tf.contrib.layers.xavier_initializer_conv2d(uniform=True, seed=None, dtype=tf.float32) {#xavier_initializer_conv2d}
Returns an "Xavier" initializer for 2D convolution weights.
For details on the initialization performed, see xavier_initializer. This
function initializes a convolution weight variable which is assumed to be 4-D.
The first two dimensions are expected to be the kernel size, the third
dimension is the number of input channels, and the last dimension is the
number of output channels.
The number of inputs is therefore shape[0]*shape[1]*shape[2], and the number
of outputs is shape[0]*shape[1]*shape[3].
uniform: Whether to use uniform or normal distributed random initialization.seed: A Python integer. Used to create random seeds. Seeset_random_seedfor behavior.dtype: The data type. Only floating point types are supported.
An initializer for a 4-D weight matrix.
TypeError: If dtype is not a floating point type.
Helper functions to summarize specific variables or ops.
Summarize an activation.
This applies the given activation and adds useful summaries specific to the activation.
op: The tensor to summarize (assumed to be a layer activation).
The summary op created to summarize op.
Summarize a tensor using a suitable summary type.
This function adds a summary op for tensor. The type of summary depends on
the shape of tensor. For scalars, a scalar_summary is created, for all
other tensors, histogram_summary is used.
tensor: The tensor to summarize
The summary op created.
Summarize a set of tensors.
tf.contrib.layers.summarize_collection(collection, name_filter=None, summarizer=summarize_tensor) {#summarize_collection}
Summarize a graph collection of tensors, possibly filtered by name.
The layers module defines convenience functions summarize_variables,
summarize_weights and summarize_biases, which set the collection argument
of summarize_collection to VARIABLES, WEIGHTS and BIASES, respectively.
tf.contrib.layers.summarize_activations(name_filter=None, summarizer=summarize_activation) {#summarize_activations}
Summarize activations, using summarize_activation to summarize.
Validate and return float type based on tensors and dtype.
For ops such as matrix multiplication, inputs and weights must be of the
same float type. This function validates that all tensors are the same type,
validates that type is dtype (if supplied), and returns the type. Type must
be dtypes.float32 or dtypes.float64. If neither tensors nor
dtype is supplied, default to dtypes.float32.
tensors: Tensors of input values. Can includeNoneelements, which will be ignored.dtype: Expected type.
Validated type.
ValueError: if neithertensorsnordtypeis supplied, or result is not float.