Skip to content

feferna/psoCNN

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Particle swarm optimization of deep neural networks architectures for image classification

Authors: Francisco Erivaldo Fernandes Junior and Gary G. Yen

This code can be used to replicate the results from the following paper:

F. E. Fernandes Junior and G. G. Yen, “Particle swarm optimization of deep neural networks architectures for image classification,” Swarm and Evolutionary Computation, vol. 49, pp. 62–74, Sep. 2019.

@article{fernandes_junior_particle_2019,
	title = {Particle swarm optimization of deep neural networks architectures for image classification},
	volume = {49},
	issn = {22106502},
	url = {https://linkinghub.elsevier.com/retrieve/pii/S2210650218309246},
	doi = {10.1016/j.swevo.2019.05.010},
	language = {en},
	urldate = {2019-07-06},
	journal = {Swarm and Evolutionary Computation},
	author = {Fernandes Junior, Francisco Erivaldo and Yen, Gary G.},
	month = sep,
	year = {2019},
	pages = {62--74},
}

Note1: If your system has all these packages installed, the code presented here should be able to run on Windows, macOS, or Linux.

Installation using Anaconda Python

Make sure you have Anaconda installed in your system. Then, run each command in a terminal window:

git clone https://github.com/feferna/psoCNN.git

cd psoCNN

conda env create -f psoCNN_env.yml

conda activate psoCNN

Note1: If your system has all the packages listed in the file psoCNN_env.yml, the code presented here should be able to run on Windows, macOS, or Linux.

Note2: The file psoCNN_env.yml installs the Nvidia CUDA Toolkit and cuDNN library necessary to run the project in an Nvidia GPU.

Note3: This code only works with Tensorflow 1.14. Do not try to use Tensorflow 2.X because you will find inconsistent results!

Usage

  1. Download the following datasets and extract them to their corresponding folders inside the datasets folder:

    1. Convex: http://www.iro.umontreal.ca/~lisa/icml2007data/convex.zip
    2. Rectangles: http://www.iro.umontreal.ca/~lisa/icml2007data/rectangles.zip
    3. Rectangles with Background Images: http://www.iro.umontreal.ca/~lisa/icml2007data/rectangles_images.zip
    4. MNIST with Background Images: http://www.iro.umontreal.ca/~lisa/icml2007data/mnist_background_images.zip
    5. MNIST with Random Noise as Background: http://www.iro.umontreal.ca/~lisa/icml2007data/mnist_background_random.zip
    6. MNIST with Rotated Digits: http://www.iro.umontreal.ca/~lisa/icml2007data/mnist_rotation_new.zip
    7. MNIST with Rotated Digits and Background Images: http://www.iro.umontreal.ca/~lisa/icml2007data/mnist_rotation_back_image_new.zip
  2. Now, you can test the algorithm by running the main.py file:

    export TF_FORCE_GPU_ALLOW_GROWTH=true
    
    python main.py
    

Note2: The algorithm's parameters can modified in the file main.py.

Note3: due to our limited resources, we cannot provide any support to the code in this repository.

About

Code to validate the "Particle swarm optimization of deep neural networks architectures for image classification" paper.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages