FsTsetlin 0.5.1

.NET 6.0
dotnet add package FsTsetlin --version 0.5.1
NuGet\Install-Package FsTsetlin -Version 0.5.1
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="FsTsetlin" Version="0.5.1" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add FsTsetlin --version 0.5.1
#r "nuget: FsTsetlin, 0.5.1"
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install FsTsetlin as a Cake Addin
#addin nuget:?package=FsTsetlin&version=0.5.1

// Install FsTsetlin as a Cake Tool
#tool nuget:?package=FsTsetlin&version=0.5.1


Implements a Tsetlin machine learning system in F#. The key difference between this and other Testlin machine implementations is that this library uses tensor operations to parallelize learning and prediction. FsTsetlin utilizes the tensor library underpinning TorchSharp/PyTorch. The libary has been tested to work on both CPU and GPU (although extensive performance testing has not been performed as of yet)

Tsetline Machine

Tsetlin machine (TM) is a recently developed machine learning system based on automata (finite state machines / propositional logic) learning. Please see this paper for details.

TM is said to be competitive on many tasks with other ML methods (both DL & classical). However, the main draw is that TM-based models are faster to train and more energy-efficient when used for inferencing than models based on other ML methods - while providing similar accuracy. As ML becomes pervasive, the compute and power costs of deployed models becomes non-trivial. TM may help to reign in runtime and training costs associated with ML at scale.

Although this implementation is in F#, the goal is to define a largely language-agnostic computation approach that can be easily ported to other languages (e.g. Python, Java, etc.), as long as the language has a binding to libtorch - the C++ tensor library underlying PyTorch.

There are other GPU implementations available (see github repo). None of these use tensor operations from a standard tensor library. By using PyTorch as an established standard, the desire is to gain wider deployment portability. For example, the TM may be trained on a GPU but later deployed to a CPU-based environment for inferencing, to save costs.


Datasets courtesy of https://github.com/cair/TsetlinMachine

Product Versions
.NET net6.0 net6.0-android net6.0-ios net6.0-maccatalyst net6.0-macos net6.0-tvos net6.0-windows net7.0 net7.0-android net7.0-ios net7.0-maccatalyst net7.0-macos net7.0-tvos net7.0-windows
Compatible target framework(s)
Additional computed target framework(s)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
0.5.1 321 6/20/2022
0.5.0 283 6/12/2022
0.4.7 282 6/6/2022
0.4.1 286 5/21/2022
0.3.2 284 5/20/2022
0.3.0 286 5/20/2022
0.2.1 288 5/20/2022
0.2.0 274 5/19/2022
0.1.0 285 5/18/2022