tiny-dnn is a header-only C++14 deep learning framework for building, training, and running inference on neural networks. It constructs static computational graphs at compile time using template-based layer composition, with a gradient-based backpropagation engine and minibatch stochastic gradient descent for training, all without external dependencies beyond the C++14 standard library.
The framework supports importing pre-trained models from the Caffe framework directly, parsing its binary serialization format without requiring external protocol buffer libraries. It provides CPU-optimized tensor operations for both training and inference, with file-based weight serialization for saving and restoring network parameters.
The library includes support for constructing networks by composing layers such as fully-connected, convolutional, and pooling in a sequential pipeline, with built-in support for training on the MNIST dataset. It offers configurable optimization algorithms, loss functions, and activation functions, and allows extending the network with custom layer types through a defined interface.