tf.NET
0.2.3.1
dotnet add package tf.NET --version 0.2.3.1
NuGet\Install-Package tf.NET -Version 0.2.3.1
<PackageReference Include="tf.NET" Version="0.2.3.1" />
paket add tf.NET --version 0.2.3.1
#r "nuget: tf.NET, 0.2.3.1"
// Install tf.NET as a Cake Addin
#addin nuget:?package=tf.NET&version=0.2.3.1
// Install tf.NET as a Cake Tool
#tool nuget:?package=tf.NET&version=0.2.3.1
tf.NET
About
.NET bindings for the TensorFlow 2 C API. These are low-level bindings suitable for creating higher-level idiomatic interfaces to TensorFlow 2 in .NET languages like C# and F#.
Implementation
- C# bindings autogenerated from the TensorFlow C header files using CppSharp.
- C# op definitions autogenerated from the TensorFlow 2 runtime op definitions. The generator is based on the one created by Miguel de Icaza for TensorFlowSharp.
- Tensor object implementation that uses zero-copy reinterpretation of existing .NET multi-dimensional arrays as tensor data.
Differences
The main differences between this and TensorFlow.NET and TensorSharp and other .NET TensorFlow projects are:
- tf.NET supports TensorFlow 2 only. TensorFlow.NET and other libraries currently only support TF 1.
- tf.NET does not try to implement any higher-level APIs for ML or things like that. I made this because I wanted a low-level direct binding to the TensorFlow 2 API that I could use to create my own .NET scientific computing language in F#. Looking at the code for TensorFlow.NET, it seems to me that it mixes a lot of higher-level C# code and the bindings together. tf.NET has implementations of essential memory-backed objects like buffers and tensors but usage of these implementations is purely optional.
Installation
Available from NuGet
PM> Install-Package tf.NET
Note that you will still need the TensorFlow 2 native runtime library (i.e. libtensorflow) for your OS. There doesn't seem to be an official Google libtensorflow package for version 2 as yet. For Windows you can build it yourself or check out this package which installs a CPU-only TF 2 native library dependency into your .NET project. For Linux you can download nightly builds of libtensorflow from the TensorFlow Github page.
For usage examples see the unit tests.
Product | Versions |
---|---|
.NET | net5.0 net5.0-windows 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 |
.NET Core | netcoreapp2.0 netcoreapp2.1 netcoreapp2.2 netcoreapp3.0 netcoreapp3.1 |
.NET Standard | netstandard2.0 netstandard2.1 |
.NET Framework | net45 net451 net452 net46 net461 net462 net463 net47 net471 net472 net48 net481 |
MonoAndroid | monoandroid |
MonoMac | monomac |
MonoTouch | monotouch |
Tizen | tizen40 tizen60 |
Xamarin.iOS | xamarinios |
Xamarin.Mac | xamarinmac |
Xamarin.TVOS | xamarintvos |
Xamarin.WatchOS | xamarinwatchos |
-
.NETFramework 4.5
- Google.Protobuf (>= 3.11.2)
- System.Buffers (>= 4.5.0)
- System.Memory (>= 4.5.3)
- System.Runtime.CompilerServices.Unsafe (>= 4.7.0)
- System.ValueTuple (>= 4.4.0)
-
.NETStandard 2.0
- Google.Protobuf (>= 3.11.2)
- System.Buffers (>= 4.5.0)
- System.Memory (>= 4.5.3)
- System.Runtime.CompilerServices.Unsafe (>= 4.7.0)
- System.ValueTuple (>= 4.4.0)
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.2.3.1 | 759 | 1/7/2020 |
0.2.3 | 448 | 1/7/2020 |
0.2.2 | 674 | 1/4/2020 |
0.2.0-r2.0 | 276 | 12/30/2019 |
Add export functions.