/AutoFlow

Primary LanguageC++GNU General Public License v3.0GPL-3.0

AutoFlow

🚂🚋🚋🚋🚋🚋
Bring your AI to the Edge
AutoFlow is a tool that helps developers to implement machine learning (ML) faster and easier on embedded devices. The whole workflow of a data scientist should be covered. Starting from building the ML model to the selection of the target platform to the optimization and implementation of the model on the target platform.

A little framework that makes your life easier. Built with ❤︎ by Marcus Rueb and Daniel Konegen

Table of Contents

Code of Conduct

Trust, respect, collaboration and transparency are core values we believe should live and breathe within our project. Our community welcomes participants from around the world with different experiences, unique perspectives, and great ideas to share. Our detailed Code of Conduct can be found here.

Features

  • Graphical user interface: With this framework we offer a GUI, which should facilitate the entry into the AI as far as possible.
  • AutoML: With the help of AUTOML techniques, ML models can be generated automatically. No experience with ML is required.
  • Automatic compression: Existing ML models can be automatically compressed to reduce the size of the model and speed it up.
  • Automatic Code generation: The framework automatically generates code for executing the ML models on the target platform.
  • Different target platform: Afterwards the ML models can be executed on MCUs, FPGAs, Arduino, Raspberry Pi etc.

Installation

pip install -r requirements.txt

If Ubuntu is used, the following must also be installed:

sudo apt-get install python3-pyqt5 -y
sudo apt-get install pyqt5-dev-tools -y
sudo apt-get install qttools5-dev-tools -y

To ensure that AutoKeras works without errors, the script src/automl/customize_autokeras.py has to be executed. The environment used is passed as the parameter. The following are examples of the execution of the script in Windows and Linux operating systems:
Windows:

python src/automl/customize_autokeras.py C:/Users/.../Anaconda3/envs/AutoFlow

Linux:

python src/automl/customize_autokeras.py .../anaconda3/envs/AutoFlow

GUI Flowchart

The image below shows the different steps of the AutoFlow GUI.

Get Started

To start AutoFlow, the AutoFlow.py file is executed.
Afterwards, the first window of the GUI will be opened. The tool consists of two parts. Therefore, in the first window, you can choose which part of the AutoFlow tool you want to use. You can train a new model from scratch, by using AutoKeras, according to a database of you (left button). The other option is to use an already trained model, optimize and convert it into a format to execute it on your target platform (right button). If you want, you can also first train a new model from scratch and optimize and convert it afterwards for your target platform.

The following links describe the two parts of AutoFlow described above. If you select the left button on the start window, you train a model from scratch:

If you select the right button on the start window, you optimize and convert a model:

If you want to contribute to the further development of AutoFlow, the most important questions for getting started are answered in our developer documentation.

Contributing

If you would like to be a part of programming AutoFlow, we would be very happy to have you. For example, you can implement new functions or features and create a "pull request". If your innovations fit our vision of AutoFlow, we will gladly incorporate the changes/new features into our tool. We are always open and grateful for new creative ideas to extend the tool! Further information can be found here.

Upcoming

Improvement of automated neural network generation.
It is planned to release the toolkit in the future not only as a GUI but also as a library.

See Also

Support

If you need help, please open a new issue and ask your questions. If you have suggestions for extending the tool, you are also welcome to open a new issue with your ideas.

License

Code released under the GPL-3.0 License.