Tinn 2.1.0
dotnet add package Tinn --version 2.1.0
NuGet\Install-Package Tinn -Version 2.1.0
<PackageReference Include="Tinn" Version="2.1.0" />
paket add Tinn --version 2.1.0
#r "nuget: Tinn, 2.1.0"
// Install Tinn as a Cake Addin #addin nuget:?package=Tinn&version=2.1.0 // Install Tinn as a Cake Tool #tool nuget:?package=Tinn&version=2.1.0
Tinn: Tiny Neural Network
Tinn is a tiny and dependency free neural network implementation for dotnet. It has three configurable layers: an input layer, a hidden layer and an output layer.
How to get started?
Create a neural network:
var network = new TinyNeuralNetwork(inputCount: 2, hiddenCount: 4, outputCount: 1);
Load a data set:
// This is XOR operation example.
var input = new float[][]
{
new []{ 1f, 1f }, // --> 0f
new []{ 1f, 0f }, // --> 1f
new []{ 0f, 1f }, // --> 1f
new []{ 0f, 0f }, // --> 0f
};
var expected = new float[][]
{
new []{ 0f }, // <-- 1f ^ 1f
new []{ 1f }, // <-- 1f ^ 0f
new []{ 1f }, // <-- 0f ^ 1f
new []{ 0f }, // <-- 0f ^ 0f
};
Train the network until a desired accuracy is achieved:
for (int i = 0; i < input.Length; i++)
{
network.Train(input[i], expected[i], 1f);
}
// Note: you will probably have to loop this for a few times until network improves.
Try to predict some values:
var prediction = network.Predict(new [] { 1f, 1f });
// Will return probability close to 0f, since 1 ^ 1 = 0.
For more examples see the examples directory and automated tests.
The original library was written by glouw in C.
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. |
.NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
.NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
.NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
MonoAndroid | monoandroid was computed. |
MonoMac | monomac was computed. |
MonoTouch | monotouch was computed. |
Tizen | tizen40 was computed. tizen60 was computed. |
Xamarin.iOS | xamarinios was computed. |
Xamarin.Mac | xamarinmac was computed. |
Xamarin.TVOS | xamarintvos was computed. |
Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.0
- No dependencies.
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
# Changelog
All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## [Unreleased]
## [2.1.0] - 2023-10-08
### Added
- `TinyNeuralNetwork` now has a constructor to provide pre-trained weights and biases.
- `TinyNeuralNetwork` weights and biases can now be accessed via read-only properties `Weights` and `Biases`.
## [2.0.0] - 2023-07-28
### Changed
- `TinyNeuralNetwork.Train` no longer calculates or returns error. To get current error values call `TinyNeuralNetwork.GetTotalError` instead.
- Improved `TinyNeuralNetwork.Load` and `TinyNeuralNetwork.Save` performance.
### Fixed
- Swapped parameters in `LossFunctionPartialDerivative`, this was a bug.
- Saving and loading is now independent of the current culture.
- Reserved 10% of training data for verification in the hand written number recognition example.
## [1.0.0] - 2021-01-18
### Added
- Initial `TinyNeuralNetwork` implementation based on [C implementation].
- Example of a hand written number recognition (MNIST database).
[unreleased]: https://github.com/lawrence-laz/tinn-dotnet/compare/v2.1.0...HEAD
[2.1.0]: https://github.com/lawrence-laz/tinn-dotnet/compare/v2.0.0...v2.1.0
[2.0.0]: https://github.com/lawrence-laz/tinn-dotnet/compare/v1.0.0...v2.0.0
[1.0.0]: https://github.com/lawrence-laz/tinn-dotnet/compare/v0.3.0...v1.0.0
[C implementation]: https://github.com/glouw/tinn