Skip to content

DT42/net2net_demo

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

net2net_demo

This repository includes the demo scripts to use Net2Net method to make net deeper and wider on Keras framework. The Net2Net class was implemented by Kyunghyun Paeng in python which can take any weight matrix as input and return the optimized weights. I found this implementation is very useful because it is independent of the deep learning framework. The reference of the demo net was from the mnist_cnn.py in the Keras examples.

Usage

THEANO_FLAGS=exception_verbosity=high,device=gpu,floatX=float32 python mnist_net2net.py

Replace NEWLAYERS with different layer you would like to use to expand your network.

  • Parameters:

  • insert_pos - index of the newly inserted layer

  • layers - a list of layers to be inserted

  • Examples

  • Insert a FC layer:

     NEWLAYERS = {'insert_pos': 8,
                  'layers': [Dense(128)]}
    
  • Insert a Conv layer:

    NEWLAYERS = {'insert_pos': 2,
                 'layers': [Activation('relu'),
                            Convolution2D(NB_FILTERS, NB_CONV, NB_CONV),
                            ZeroPadding2D((1, 1))]}
    

Padding is required to keep the size of the convolutional layers the same before and after the expansion.

Result

By adding one additional convolutional layer to the original net, one can get better results without training from scratch. Net2DeeperNet achieves a better validation accuracy (>99%) within 12 epochs.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 100.0%