NNSharp: running pre-trained DNNs

Introduction

I have started a project named NNSharp which aims for creating a C# library to run DNNs on Windows.

logo The logo of NNSharp. (it is my design)

Motivation

Nowadays a lot of good libraries are available for training and running deep neural networks (DNNs). For instance: Tensorflow, Sonnet, PyTorch, Theano, Caffe etc. Unfortunately, most of them support the Linux OS and Python or Lua languages. These libraries also put close focus on GPU acceleration. On the other hand, business oriented systems and other applications which can be built with C# do not requires training but running an already trained network without GPU acceleration. Currently, there is no available good alternatives for C# to run (and only run) DNNs. Training in C# is not the best solution because Tensorflow provides much better and an already progressed tool for do that.

NNSharp

NNSharp is a library written in C#. It is an on-going project and its main goal is to create a package which is able to run pre-trained neural networks. It should be able to read the weights and model from Keras (with both Tensorflow and Theano backand), PyTorch, Sonnet, Tensorflow etc. Then it would be possible to execute training tasks on a GPU server with the available state-of-the-art technologies then to move the weights into NNSharp and run the DNNs.

The library should be lightweight: it should use as few 3rd party tools as possible.

More details on GitHub