GitXplorerGitXplorer
S

CGP-CNN-Design

public
5 stars
0 forks
0 issues

Commits

List of commits on branch master.
Verified
3dbc4924e76ee6587b5f4f3cd8a414721b33ed95

Readme File

SSourangshuGhosh committed 4 years ago
Verified
39227cee33790a99a8c7f2f340578d0c0ef0d8db

Add files via upload

SSourangshuGhosh committed 4 years ago
Verified
c98be1f33bb3809adbdfaa02056a0a92b5c4c1a1

Data File

SSourangshuGhosh committed 4 years ago
Verified
47e161dbda6f4e94153c7538b661e63c12884b98

Bug Fixed

SSourangshuGhosh committed 4 years ago
Verified
34683b18881629d4a7f3e4898644605d8c589c5a

Add files via upload

SSourangshuGhosh committed 4 years ago
Verified
ee5055282e3453364c48613899d797d62844b5a6

Pytorch Version

SSourangshuGhosh committed 4 years ago

README

The README file for this repository.

cgp-cnn-PyTorch

A Genetic Programming Approach to Designing CNN Architectures, In GECCO 2017 (oral presentation, Best Paper Award)

Designing Convolutional Neural Network Architectures Based on Cartegian Genetic Programming

This repository contains the code for the following paper:

Masanori Suganuma, Shinichi Shirakawa, and Tomoharu Nagao, "A Genetic Programming Approach to Designing Convolutional Neural Network Architectures," Proceedings of the Genetic and Evolutionary Computation Conference (GECCO '17, Best paper award), pp. 497-504 (2017) [paper] [arXiv]

Requirement

We use the PyTorch framework for neural networks and tested on the following environment:

  • PyTorch version 0.2.0_4
  • Python version 3.6.2
  • CUDA version 8.0
  • Ubuntu 14.04 LTS

Usage

Run the architecture search

This code can reproduce the experiment for CIFAR-10 dataset with the same setting of the GECCO 2017 paper (by default scenario). The (training) data are split into the training and validation data. The validation data are used for assigning the fitness to the generated architectures.

When you use the multiple GPUs, please specify the -g option:

python exp_main.py -g 2

After the execution, the files, network_info.pickle and log_cgp.txt will be generated. The file network_info.pickle contains the information for Cartegian genetic programming (CGP) and log_cgp.txt contains the log of the optimization and discovered CNN architecture's genotype lists.

Some parameters (e.g., # rows and columns of CGP, and # epochs) can easily change by modifying the arguments in the script exp_main.py.

Re-training

The discovered architecture is re-trained by the different training scheme (500 epoch training with momentum SGD) to polish up the network parameters. All training data are used for re-training, and the accuracy for the test data set is reported.

python exp_main.py -m retrain