ConvDiagonalFB
Inherits From: FisherBlock
Defined in tensorflow/contrib/kfac/python/ops/fisher_blocks.py
.
FisherBlock for 2-D convolutional layers using a diagonal approx.
Estimates the Fisher Information matrix's diagonal entries for a convolutional layer. Unlike NaiveDiagonalFB this uses the low-variance "sum of squares" estimator.
Let 'params' be a vector parameterizing a model and 'i' an arbitrary index into it. We are interested in Fisher(params)[i, i]. This is,
Consider a convoluational layer in this model with (unshared) filter matrix 'w'. For an example image 'x' that produces layer inputs 'a' and output preactivations 's',
where 'loc' is a single (x, y) location in an image.
This FisherBlock tracks Fisher(params)[i, i] for all indices 'i' corresponding to the layer's parameters 'w'.
num_registered_towers
__init__
__init__( layer_collection, params, strides, padding, data_format=None, dilations=None )
Creates a ConvDiagonalFB block.
layer_collection
: The collection of all layers in the K-FAC approximate Fisher information matrix to which this FisherBlock belongs.params
: The parameters (Tensor or tuple of Tensors) of this layer. If kernel alone, a Tensor of shape [kernel_height, kernel_width, in_channels, out_channels]. If kernel and bias, a tuple of 2 elements containing the previous and a Tensor of shape [out_channels].strides
: The stride size in this layer (1-D Tensor of length 4).padding
: The padding in this layer (e.g. "SAME").data_format
: str or None. Format of input data.dilations
: List of 4 ints or None. Rate for dilation along all dimensions.ValueError
: if strides is not length-4.ValueError
: if dilations is not length-4.ValueError
: if channel is not last dimension.instantiate_factors
instantiate_factors( grads_list, damping )
Creates and registers the component factors of this Fisher block.
grads_list
: A list gradients (each a Tensor or tuple of Tensors) with respect to the tensors returned by tensors_to_compute_grads() that are to be used to estimate the block.damping
: The damping factor (float or Tensor).multiply
multiply(vector)
Multiplies the vector by the (damped) block.
vector
: The vector (a Tensor or tuple of Tensors) to be multiplied.The vector left-multiplied by the (damped) block.
multiply_inverse
multiply_inverse(vector)
Multiplies the vector by the (damped) inverse of the block.
vector
: The vector (a Tensor or tuple of Tensors) to be multiplied.The vector left-multiplied by the (damped) inverse of the block.
multiply_matpower
multiply_matpower( vector, exp )
Multiplies the vector by the (damped) matrix-power of the block.
vector
: The vector (a Tensor or tuple of Tensors) to be multiplied.exp
: A float representing the power to raise the block by before multiplying it by the vector.The vector left-multiplied by the (damped) matrix-power of the block.
register_additional_tower
register_additional_tower( inputs, outputs )
register_inverse
register_inverse()
Registers a matrix inverse to be computed by the block.
register_matpower
register_matpower(exp)
Registers a matrix power to be computed by the block.
exp
: A float representing the power to raise the block by.tensors_to_compute_grads
tensors_to_compute_grads()
Tensors to compute derivative of loss with respect to.
© 2018 The TensorFlow Authors. All rights reserved.
Licensed under the Creative Commons Attribution License 3.0.
Code samples licensed under the Apache 2.0 License.
https://www.tensorflow.org/api_docs/python/tf/contrib/kfac/fisher_blocks/ConvDiagonalFB