A hand-rolled neural net in C#, now in maintenance-only mode
A university project that grew into a full TensorFlow-style API with cuDNN GPU layers, then got politely shelved by its author.

What it does
NeuralNetwork.NET is a from-scratch C# implementation of sequential and computation-graph neural networks for .NET Standard 2.0. You stack layers via NetworkManager.NewSequential, feed it datasets through DatasetLoader, and train with SGD variants like Adadelta. It also serializes models, loads MNIST automatically, and swaps in cuDNN-accelerated layers when you need GPU speed.
The interesting bit
The author built this for a university course, yet it covers non-trivial territory: residual-style computation graphs with NetworkManager.NewGraph, Inception modules, and even auxiliary classifiers for gradient flow. The cuDNN path requires the now-defunct Alea GPU compiler, which dates the project almost as precisely as carbon-14.
Key highlights
- Sequential and graph APIs with operator-overloaded node wiring (
conv2 + pool1) - cuDNN layers with custom convolution modes, padding, and stride controls
- Built-in MNIST loader and async training callbacks
- Model serialization with CPU/CUDA execution mode preferences on reload
- .NET Standard 2.0: runs on Framework 4.6.1+, Core 2.0+, UWP, Mono, Xamarin
Caveats
- No longer maintained; author explicitly recommends ML.NET or TensorFlow.NET for production
- GPU acceleration depends on the Alea NuGet package, which is discontinued and tricky to source
- 572 stars suggests niche usage; this is educational infrastructure, not battle-tested framework
Verdict
Worth a read if you’re implementing backprop in C# and want a clean reference architecture. Skip it if you need a living ecosystem, modern CUDA support, or anything resembling a community.