/NiaNetAD

This is a ported version of the NiaNet algorithm that makes use of the power of a high-performance computer. We could say that this version of NiaNet is on steroids.

Primary LanguageJupyter NotebookMIT LicenseMIT

NiaPy


PyPI Version PyPI - Python Version Downloads GitHub license

Designing and constructing neural network topologies using nature-inspired algorithms - powered by high performance computer (HPC)

Description 📝

The proposed method NiaNet attempts to pick hyperparameters and AE architecture that will result in a successful encoding and decoding (minimal difference between input and output). NiaNet uses the collection of algorithms available in the library NiaPy to navigate efficiently in waste search-space.

What it can do? 👀

  • Construct novel AE's architecture using nature-inspired algorithms.
    • number of solutions = topology shape * layer step * layers * act. func. * epochs * lr * optimizers
    • 3,456,000,000 = 2 * 60 * 60 * 8 * 100 * 100 * 6
  • It can be utilized for any kind of dataset, which has numerical values.
  • Detect anomalies in data

Installation ✅

Installing NiaNetHPC with pip3:

TODO: Publish it to PyPi

pip3 install nianet-hpc

Documentation 📘

The purpose of this paper is to get an understanding of the first version of the NiaNet approach (without HPC).

Annals of Computer Science and Information Systems, Volume 30: NiaNet: A framework for constructing Autoencoder architectures using nature-inspired algorithms

Examples

Usage examples can be found here.

Getting started 🔨

Create your own example:
  • TODO Add description for making your own example.
Change dataset:

Change the dataset import function as follows:

  • TODO Add description for dataloader and config file.
Specify the search space:

Set the boundaries of your search space with autoencoder.py.

The following dimensions can be modified:

  • Topology shape (symmetrical, asymmetrical)
  • Size of input, hidden and output layers
  • Number of hidden layers
  • Number of neurons in hidden layers
  • Activation functions
  • Number of epochs
  • Learning rate
  • Optimizer

You can run the NiaNet script once your setup is complete.

Running NiaNet script with Docker:

docker build --tag spartan300/nianet:dnnae .

docker run \
  --name=nianet-dnnae \
  -it \
  -v $(pwd):/app/logs \
  --gpus all spartan300/nianet:dnnae \
  python ./dnn_ae_run.py

HELP ⚠️

saso.pavlic@student.um.si

Acknowledgments 🎓

License

This package is distributed under the MIT License. This license can be found online at http://www.opensource.org/licenses/MIT.

Disclaimer

This framework is provided as-is, and there are no guarantees that it fits your purposes or that it is bug-free. Use it at your own risk!