All Projects → sg-nm → Cgp Cnn

sg-nm / Cgp Cnn

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

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Cgp Cnn

Droidsentinel
Analizador de tráfico para dispositivos Android potencialmente comprometidos como parte de una botnet orientado a detectar ataques DDoS.
Stars: ✭ 11 (-81.36%)
Mutual labels:  genetic-algorithm
Evolutionary Neural Networks On Unity For Bots
Neural networks + Genetic algorithm on unity
Stars: ✭ 38 (-35.59%)
Mutual labels:  genetic-algorithm
Notebooks
Some notebooks
Stars: ✭ 53 (-10.17%)
Mutual labels:  genetic-algorithm
Resnet Multipleframework
ResNet benchmark by Keras(TensorFlow), Keras(MXNet), Chainer, PyTorch using Google Colab
Stars: ✭ 14 (-76.27%)
Mutual labels:  chainer
Csb Ai Starter
Starter Bot for Codingame's Coders Strike Back AI Challenge (Simulation Engine + Random Search)
Stars: ✭ 32 (-45.76%)
Mutual labels:  genetic-algorithm
Neataptic
🚀 Blazing fast neuro-evolution & backpropagation for the browser and Node.js
Stars: ✭ 1,027 (+1640.68%)
Mutual labels:  genetic-algorithm
Chainerrl
ChainerRL is a deep reinforcement learning library built on top of Chainer.
Stars: ✭ 931 (+1477.97%)
Mutual labels:  chainer
Applying eanns
A 2D Unity simulation in which cars learn to navigate themselves through different courses. The cars are steered by a feedforward neural network. The weights of the network are trained using a modified genetic algorithm.
Stars: ✭ 1,093 (+1752.54%)
Mutual labels:  genetic-algorithm
Tsp Ga
A Genetic Algorithm in Python for the Travelling Salesman Problem
Stars: ✭ 33 (-44.07%)
Mutual labels:  genetic-algorithm
Emoji Art Generator
Use a genetic algorithm to evolve an image by putting emojies on a canvas
Stars: ✭ 53 (-10.17%)
Mutual labels:  genetic-algorithm
Evolutionary Algorithm
Evolutionary Algorithm using Python, 莫烦Python 中文AI教学
Stars: ✭ 881 (+1393.22%)
Mutual labels:  genetic-algorithm
Chainer Trt
Chainer x TensorRT
Stars: ✭ 32 (-45.76%)
Mutual labels:  chainer
Agario Ai
Neural agents learn to play in an agario-like environment with Neataptic
Stars: ✭ 46 (-22.03%)
Mutual labels:  genetic-algorithm
Fasttext Tuning
📈 Find your fasttext hyperparameters quickly and easily.
Stars: ✭ 13 (-77.97%)
Mutual labels:  genetic-algorithm
Wavenet
WaveNet implementation with chainer
Stars: ✭ 53 (-10.17%)
Mutual labels:  chainer
Nqueens Genetic
Solving the nqueens problem using genetic algorithm
Stars: ✭ 10 (-83.05%)
Mutual labels:  genetic-algorithm
Chainer Segnet
SegNet implementation & experiments in Chainer
Stars: ✭ 42 (-28.81%)
Mutual labels:  chainer
Watchcarslearn
Self driving cars using NEAT
Stars: ✭ 59 (+0%)
Mutual labels:  genetic-algorithm
Genann
simple neural network library in ANSI C
Stars: ✭ 1,088 (+1744.07%)
Mutual labels:  genetic-algorithm
Influx Crypto Trader
Node js trading bot, let you create trading strategy and run it (backtest/simulation/live)
Stars: ✭ 49 (-16.95%)
Mutual labels:  genetic-algorithm

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), pp. 497-504 (2017) [DOI] [arXiv]

Requirement

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

  • Chainer version 1.16.0
  • GPU: GTX 1080 or 1070
  • Python version 3.5.2 (anaconda3-4.1.1)

PyTorch version is here

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. We use the maximum validation accuracy in the last 10 epochs as the fitness value.

If you run with the ResSet described in the paper as the function set:

python exp_main.py -f ResSet

Or if you run with the ConvSet described in the paper:

python exp_main.py -f ConvSet

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

python exp_main.py -f ConvSet -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
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].