Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/ludwigandreas/simplemlp

Implementation of a basic multilayer perceptron using C++ without any external libraries. Qt framework is used for GUI, project is written according to MVC design pattern. The project is a part of the School 21 curriculum.
https://github.com/ludwigandreas/simplemlp

Last synced: 4 days ago
JSON representation

Implementation of a basic multilayer perceptron using C++ without any external libraries. Qt framework is used for GUI, project is written according to MVC design pattern. The project is a part of the School 21 curriculum.

Awesome Lists containing this project

README

        



Multi Layer Perceptron

Logo

Implementation of a basic multilayer perceptron using C++ without any external libraries. Qt framework is used for GUI, project is written according to MVC design pattern. The project is a part of the School 21 curriculum.

## Table of Contents

- [About](#about)
- [Features](#features)
- [Getting Started](#getting-started)
- [Prerequisites](#prerequisites)
- [Installing](#installing)
- [Running the tests](#running-the-tests)
- [Usage](#usage)
- [Built Using](#built-using)
- [Authors](#authors)
- [Acknowledgements](#acknowledgements)
- [License](#license)

## About

This project is a basic implementation of a multilayer perceptron. It allows to train and test the model on a given dataset. The project is written in C++ without any external libraries. The GUI is implemented using the Qt framework. The project is written according to the MVC design pattern.

### Features


  • Learning on given training dataset using cross-validation


  • Testing trained model with built-in drawing field or by importing pre-drawn image


  • Configure model properties for training such as:

    • Perceptron implementation type

      • Matrix

      • Graph



    • Number of hidden layers

    • Number of neurons (units) per hidden layer

    • Learning rate

    • Activation Function

      • Sigmoid

      • Leaky ReLU

      • Linear

      • Bipolar Sigmoid






  • Import pretrained model


  • Testing trained model on testing dataset


## Getting Started

These instructions will get you a copy of the project up and running on your local machine for development and testing purposes.

### Prerequisites

What things you need to install the software and how to install them.

```text
cmake >= 3.10
gcc >= 7.5.0
Qt >= 6.5.0
```

```bash
sudo apt-get install cmake
sudo apt-get install gcc
sudo apt-get install qt6-base-dev
```

### Installing

A step by step series of examples that tell you how to get a development env running.

Clone the repository.

```bash
git clone

cd MonitoringSystem
```

Run the Makefile with the following command:

```bash
make install
```

## Running the tests

Explain how to run the automated tests for this system.

```bash
make test
```

## Usage

To run the project, execute the following command:

```bash
./SimpleMLP
```

## Built Using

- [C++](https://en.cppreference.com/w/) - Programming language
- [CMake](https://cmake.org/) - Build system
- [Qt](https://doc.qt.io/qt-5/qtwidgets-index.html) - GUI framework
- [Google Test](https://google.github.io/googletest/) - Testing framework

## Authors

This project was developed by:

| drawing |[LudwigAndreas](https://github.com/LudwigAndreas)|
| --- | --- |
| drawing | [AndrefHub](https://github.com/AndrefHub) |

## Acknowledgements

- [School 21](https://21-school.ru/) - Educational institution.
- [Dmitriy Korobchenko](https://youtu.be/bW4dKxtUFpg) for video explaining maths behind back propagation algorithm.

## License

This project is licensed under the School 21 License - see the [LICENSE](LICENSE) file for details.