Skip to content

beeperman/Fenchel_Lifted_Networks

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Author: Fangda Gu ([email protected])

Date: July 28th 2020

This is an implementation of batched lifted neural network in accordance to the paper Fenchel lifted networks: A lagrange relaxation of neural network training.

There are scripts in the working directory:

layers.py
    In this file, the layer classes are implemented.
    There are FCLayer, FC2Layer(Fenchel), ConvLayer and FINLayer.
    FINLayer is used when adding additional variables in the final layer.
model.py
    In this file, the batched LNN is implemented. Parameters and network structure can be specified.
nn.py
    In this file, the Tensorflow helper functions that include computations are implemented.
utils.py
    In this file, some other helper functions are defined.
ridge.py
    In this file, the sklearn ridge regression is wrapped into a optimizer that can be used by LNN
closed.py
    In this file, optimizers that contain only closed form computations are implemented.
    Only a closed form solution optimizer for a special case is implemented.
    (original LNN, regression problem, additional variables in the final layer)

Other scripts are testing files whose names suggest their use. They start with the name of dataset (mnist for now). Some phrase definition is given below.

lenet:  LeNet-5
batch:  batched Fenchel LNN

Tested on Tensorflow 1.15

If you find the code useful, please consider citing the paper.

@inproceedings{gu2020fenchel,
  title={Fenchel lifted networks: A lagrange relaxation of neural network training},
  author={Gu, Fangda and Askari, Armin and El Ghaoui, Laurent},
  booktitle={International Conference on Artificial Intelligence and Statistics},
  pages={3362--3371},
  year={2020}
}

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages