Bright Wire is an extensible machine learning library for .NET with GPU support (via CUDA).
Bright Wire is a .net 6 class library.
The previous .net 4.6 version can be found here: https://github.com/jdermody/brightwire-v2
Bright Wire runs "out of the box" for CPU based computation. For GPU based computation, you will need to install NVIDIA CUDA Toolkit 11 (and have a Kepler or better NVIDIA GPU).
To enable higher performance CPU based computation, Bright Wire also supports the Intel Math Kernel Library (MKL) via the Numerics.Net Wrapper.
- Getting Started
- Introduction
- Classification Overview
- Building a Language Model
- Recognising Handwritten Digits (MNIST)
- Sentiment Analysis
- Text Clustering
- Simple Recurrent Neural Networks
- GRU Recurrent Neural Networks
- Sequence to Sequence Neural Networks with LSTM
- Convolutional Neural Networks
To install the cpu version (no CUDA support) use:
Install-Package BrightWire
Install-Package BrightData.Numerics
To add CUDA support use:
Install-Package BrightWire
Install-Package BrightData.Cuda
- Feed Forward, Convolutional, Bidirectional and Sequence to Sequence (seq2seq) network architectures
- LSTM, GRU, Simple, Elman and Jordan recurrent neural networks
- L2, Dropout and DropConnect regularisation
- Relu, LeakyRelu, Sigmoid, Tanh and SoftMax activation functions
- Gaussian, Xavier and Identity weight initialisation
- Cross Entropy, Quadratic and Binary cost functions
- Momentum, NesterovMomentum, Adagrad, RMSprop and Adam gradient descent optimisations
- Naive Bayes
- Multinomial Bayes
- Multivariate Bernoulli
- Markov Models
- K Means clustering
- Hierachical clustering
- Non Negative Matrix Factorisation
- Random Projection
- Regression
- Logistic Regression
- Multinomial Logistic Regression
- Decision Trees
- Random Forest
- Stacking
- K Nearest Neighbour classification
- In-memory and file based data processing
- ManagedCuda (for CUDA version of BrightWire)
- MathNet.Numerics