/metaplasticity-rest-api

Keras REST API with Flask RESTPlus, Swagger, Gunicorn and Docker for Convolutional Neural Networks with synaptic metaplasticity

Primary LanguagePythonMIT LicenseMIT

Keras REST API for image classification using convolutional neural networks with synaptic metaplasticity

Table of Contents
  1. About The Project
  2. Getting Started
  3. Usage
  4. Roadmap
  5. Contributing
  6. License
  7. Contact
  8. Acknowledgements

About The Project

Synaptic metaplasticity is a biological phenomenon shortly defined as the plasticity of synaptic plasticity, meaning that the previous history of the synaptic activity determines its current plasticity. This phenomenon interferes with some of the underlying mechanisms that are considered important in memory and learning processes, such as long-term potentiation and long-term depression. In this work, we provide an approach to include metaplasticity in convolutional neural networks to enhance learning in image classification problems. This approach consists of including metaplasticity as a weight update function in the backpropagation stage of convolutional layers.

Built With

Getting Started

Prerequisites

Install and configure CUDA.

  • Check your NVIDIA driver.
  • Update the NVIDIA display driver.
  • Check your PATH environment variable.

Installation

  1. Clone the repo

    git clone https://github.com/vvives/metaplasticity-rest-api.git
  2. Install python libraries with the following command:

    pip install -r requirements.txt
  3. Execute the WSGI or the Dockerfile within the corresponding folder.

    python wsgi.py

Usage

  1. Go to the default URL http://localhost:5000/ and visualize the Swagger interface.
  2. Select any image classification problem: MNIST, Fashion MNIST or CIFAR-10.
  3. Select the convolutional neural network architecture endpoint: alexnet, googlenet or lenet.
  4. Click the button Try it out.
  5. Use the image by default or load any of your own.
  6. Click the button Execute and wait for the predicted value.

Roadmap

See the open issues for a list of proposed features (and known issues).

Contributing

Contributions are what make the open source community such an amazing place to be learn, inspire, and create. Any contributions you make are greatly appreciated.

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

License

Distributed under the MIT License. See LICENSE for more information.

Contact

Víctor Vives - vvives@dtic.ua.es

Project Link: https://github.com/vvives/metaplasticity-rest-api

Acknowledgements