A header-only, dependency-free deep learning framework in C++14 for embedded systems and IoT devices.
tiny-dnn is a header-only, dependency-free deep learning framework implemented in C++14. It enables developers to build and train neural networks directly in C++ without external dependencies, specifically targeting environments with limited computational resources like embedded systems and IoT devices.
C++ developers working on embedded systems, IoT applications, or any project requiring a lightweight, portable deep learning solution without GPU dependencies.
Its unique selling points are being entirely header-only with zero dependencies, offering easy integration into existing C++ applications, and providing reasonable performance on CPU through threading and vectorization optimizations.
header only, dependency-free deep learning framework in C++14
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Just include tiny_dnn.h with no external dependencies; runs anywhere with a C++14 compiler, ideal for embedded systems without installation overhead.
Uses TBB threading and SSE/AVX vectorization to achieve reasonable speed without GPU, as demonstrated by 98.8% MNIST accuracy in 13 minutes on a Core i7.
Designed for real-world use with no stdout/stderr output, constant throughput, and exception-free operation, ensuring predictable embedding in production.
Can import models from the popular Caffe framework via the caffe_converter example, easing migration from other deep learning tools.
The README warns the project may be abandoned as maintainers are stepping away, raising concerns about long-term support, updates, and bug fixes.
Focuses on traditional CNNs and MLPs, lacking support for modern architectures like RNNs or attention mechanisms, and experimental GPU support via OpenCL is unreliable.
Requires manual network construction in C++ without high-level abstractions, making it less accessible compared to Python frameworks with pre-built components.