EmbeddingInputKroneckerFactor
Inherits From: DiagonalFactor
Defined in tensorflow/contrib/kfac/python/ops/fisher_factors.py.
FisherFactor for input to an embedding layer.
Given input_ids = [batch_size, input_size] representing indices into an [vocab_size, embedding_size] embedding matrix, approximate input covariance by a diagonal matrix,
Cov(input_ids, input_ids) = (1/batch_size) sum_{i} diag(n_hot(input[i]) ** 2).
where n_hot() constructs an n-hot binary vector and diag() constructs a diagonal matrix of size [vocab_size, vocab_size].
name__init____init__(
input_ids,
vocab_size,
dtype=None
)
Instantiate EmbeddingInputKroneckerFactor.
input_ids: List of Tensors of shape [batch_size, input_size] and dtype int32. Indices into embedding matrix. List index is tower.vocab_size: int or 0-D Tensor. Maximum value for entries in 'input_ids'.dtype: dtype for covariance statistics. Must be a floating point type. Defaults to float32.get_covget_cov()
Get full covariance matrix.
Tensor of shape [n, n]. Represents all parameter-parameter correlations captured by this FisherFactor.
get_cov_varget_cov_var()
Get variable backing this FisherFactor.
May or may not be the same as self.get_cov()
Variable of shape self._cov_shape.
instantiate_cov_variablesinstantiate_cov_variables()
Makes the internal cov variable(s).
instantiate_inv_variablesinstantiate_inv_variables()
Makes the internal "inverse" variable(s).
left_multiply_matpowerleft_multiply_matpower(
x,
exp,
damping_func
)
Left multiplies 'x' by matrix power of this factor (w/ damping applied).
This calculation is essentially: (C + damping * I)exp * x where * is matrix-multiplication, is matrix power, I is the identity matrix, and C is the matrix represented by this factor.
x can represent either a matrix or a vector. For some factors, 'x' might represent a vector but actually be stored as a 2D matrix for convenience.
x: Tensor. Represents a single vector. Shape depends on implementation.exp: float. The matrix exponent to use.damping_func: A function that computes a 0-D Tensor or a float which will be the damping value used. i.e. damping = damping_func().Tensor of same shape as 'x' representing the result of the multiplication.
make_covariance_update_opmake_covariance_update_op(ema_decay)
Constructs and returns the covariance update Op.
ema_decay: The exponential moving average decay (float or Tensor).An Op for updating the covariance Variable referenced by _cov.
make_inverse_update_opsmake_inverse_update_ops()
Create and return update ops corresponding to registered computations.
register_matpowerregister_matpower(
exp,
damping_func
)
right_multiply_matpowerright_multiply_matpower(
x,
exp,
damping_func
)
Right multiplies 'x' by matrix power of this factor (w/ damping applied).
This calculation is essentially: x * (C + damping * I)exp where * is matrix-multiplication, is matrix power, I is the identity matrix, and C is the matrix represented by this factor.
Unlike left_multiply_matpower, x will always be a matrix.
x: Tensor. Represents a single vector. Shape depends on implementation.exp: float. The matrix exponent to use.damping_func: A function that computes a 0-D Tensor or a float which will be the damping value used. i.e. damping = damping_func().Tensor of same shape as 'x' representing the result of the multiplication.
© 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_factors/EmbeddingInputKroneckerFactor