Skip to content
This repository has been archived by the owner on Nov 30, 2023. It is now read-only.

An attempt to make more robust neural networks using N-Version programming.

Notifications You must be signed in to change notification settings

hildebrandt-carl/ImprovingNeuralNetworks

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

20 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ImprovingNeuralNetworks

This project is aimed at improving the Robustness of Convolutional Neural Networks. We will be doing this using N-Version programming to generate a more robust network. This network will then be used as a teacher to train new networks.

Prerequists

We will also be using Bethgelab's foolbox as well as IBM's CNN-Cert. Each of these have dependencies which can be installed using the following commands:

sudo apt-get install build-essential autoconf libtool pkg-config python-opengl python-imaging python-pyrex python-pyside.qtopengl idle-python2.7 qt4-dev-tools qt4-designer libqtgui4 libqtcore4 libqt4-xml libqt4-test libqt4-script libqt4-network libqt4-dbus python-qt4 python-qt4-gl libgle3 python-dev python3-tk python3-dev

We will be using pip, pythons package manager, to install the python packages we need. To install pip you can run:

$ sudo apt install python3-pip

Our networks were generated using Keras. Full installation guides can be found in the Keras installation documentation. You have to install one of three backend engines. We will be using the Tensorflow engine. More information about installing Tensorflow can be found in the Tensorflow installation documentation. You can install this using:

# GPU version of tensorflow
$ pip3 install tensorflow-gpu
# CPU version of tensorflow
$ pip3 install tensorflow

Once Tensorflow is installed we can install Keras:

$ pip3 install keras

We can test that Keras was installed correctly using:

$ python3
>>> import keras

We will need to install Bethgelab's foolbox. More information about installing foolbox can be found in foolbox's installation documentation. We are using the development version which can be installed using:

$ pip3 install https://github.com/bethgelab/foolbox/archive/master.zip

Project Sections

  • Source - This contains all the source code I used for training networks. Creating datasets. Creating N-version setup. Distilling the networks, and finally testing the networks.
  • Documents - This contains the project proposal, the progress reports, the presentation and the report.

Video

A video of the project working can be found on youtube: https://youtu.be/u_tLKoU_lro

Acknowledgments

This code will be using versions of Bethgelab's foolbox as well as IBM's CNN-Cert.

Authors

About

An attempt to make more robust neural networks using N-Version programming.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published