Kronecker-Factored Approximate Curvature (KFAC)
The Kronecker-Factored Approximate Curvature (KFAC) algorithm is an approach that uses a second-order optimization method. It shows similar capabilies to first-order methods, but converges faster and can handle larger mini-batches. See Large-Scale Distributed Second-Order Optimization Using Kronecker-Factored Approximate Curvature for Deep Convolutional Neural Networks.
Python Front-end API Documentation
- class KFAC(TrainingAlgorithm)
Kronecker-Factored Approximate Curvature algorithm.
Applies second-order information to improve the quality of gradients in SGD-like optimizers.
- __init__(name: str, first_order_optimizer:
- BatchedIterativeOptimizer, **kfac_args)
Construct a new KFAC algorithm.
- Parameters
name (string) – A user-defined name to identify this object in logs.
first_order_optimizer (BatchedIterativeOptimizer) – The SGD-like algorithm to apply.
**kfac_args – See KFAC message for a list of kwargs.
- do_export_proto()
Get a protobuf representation of this object.
- Return type
AlgoProto.KFAC()