Skip to content

Bright Wire is an open source machine learning library for .NET with GPU support (via CUDA)

License

Notifications You must be signed in to change notification settings

jdermody/brightwire

Repository files navigation

image

Bright Wire is an extensible machine learning library for .NET with optional MKL and GPU support (via CUDA).

Getting Started

Bright Wire is a .net 8 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" with its own vectorised linear algebra library.

If you have a NVIDIA GPU then you can also use GPU based computation. You will need to install NVIDIA CUDA Toolkit 12 (and have a Kepler or better NVIDIA GPU).

To enable higher performance CPU based computation on Intel hardware, Bright Wire also supports the Intel Math Kernel Library (MKL).

Tutorials

Nuget Installation

To install the cpu version (no CUDA support) use:

Install-Package BrightWire

MKL

To add MKL support use:

Install-Package BrightWire
Install-Package BrightData.MKL

then install the MKL.NET nuget installation for your OS, for example Install-Package MKL.NET.win-x64

CUDA

To add CUDA support use:

Install-Package BrightWire
Install-Package BrightData.Cuda

Features

Neural Networks

  • 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

Bayesian

  • Naive Bayes
  • Multinomial Bayes
  • Multivariate Bernoulli
  • Markov Models

Unsupervised

  • K Means clustering
  • Hierarchical clustering
  • Non Negative Matrix Factorisation
  • Random Projection

Tree Based

  • Decision Trees
  • Random Forest

Ensemble Methods

  • Stacking

Other

  • K Nearest Neighbour classification
  • In-memory and file based data processing