Convolutional neural networks C++ framework with CPU and GPU (CUDA) backends
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.


nnForge is a library for training convolutional and fully-connected neural networks. It includes CPU and GPU (CUDA) backends. It is an open-source software distributed under the Apache License v2.0.


nnForge is designed and implemented by Maxim Milakov.


  1. Check file, you might need to make some changes to it:
    • Define paths to Boost, OpenCV, and Protobuf installations nnForge depends on if you have them installed in non-default locations.
    • Enable or disable CUDA backend - you will need to disable it if you don't have CUDA toolkit and cuDNN v4 installed.
  2. Run "./". This should build the library and the examples. All the arguments are passed to make, thus you might speed up the build process by specifying -j argument with the number of parallel jobs. The build process might take about 5 minutes on a modern desktop.
  3. Library files are in lib/ directory once build process successfuly finishes.
  4. Examples provided in examples/ directory are built into bin/. Configuration files needed to run those apps are put there as well.

Run examples

Each example contains its own README with instructions on how to get input data and run the code.

Setup your project

For the time being the easiest way to set up your own project using nnForge library is to copy one of the examples to the subdirectory and modify it for your own needs.