# tf.contrib.kfac.fisher_blocks.KroneckerProductFB

## Class KroneckerProductFB

Inherits From: FisherBlock

A base class for blocks with separate input and output Kronecker factors.

The Fisher block is approximated as a Kronecker product of the input and output factors.

## Properties

### num_registered_towers

Number of towers registered for this FisherBlock.

Typically equal to the number of towers in a multi-tower setup.

## Methods

### __init__

__init__(layer_collection)


### full_fisher_block

full_fisher_block()


Explicitly constructs the full Fisher block.

Used for testing purposes. (In general, the result may be very large.)

#### Returns:

The full Fisher block.

### instantiate_factors

instantiate_factors(
grads_list,
damping
)


Creates and registers the component factors of this Fisher block.

#### Args:

• 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.

#### Args:

• vector: The vector (a Tensor or tuple of Tensors) to be multiplied.

#### Returns:

The vector left-multiplied by the (damped) block.

### multiply_inverse

multiply_inverse(vector)


Multiplies the vector by the (damped) inverse of the block.

#### Args:

• vector: The vector (a Tensor or tuple of Tensors) to be multiplied.

#### Returns:

The vector left-multiplied by the (damped) inverse of the block.

### multiply_matpower

multiply_matpower(
vector,
exp
)


### register_inverse

register_inverse()


Registers a matrix inverse to be computed by the block.

### register_matpower

register_matpower(exp)


### tensors_to_compute_grads

tensors_to_compute_grads()


Returns the Tensor(s) with respect to which this FisherBlock needs grads.