TensorFlow for .NET

train neural networks with TensorFlow in C#
 
 

TensorFlow for .NET by Lost Tech allows you to create, train, and use machine learning models with the full power of TensorFlow API on C#, F# or any other .NET language.

var input = tf.placeholder(tf.float32, new TensorShape(null, 1), name: "x");
var output = tf.placeholder(tf.float32, new TensorShape(null, 1), name: "y");
 
var hiddenLayer = tf.layers.dense(input, hiddenSize,
    activation: tf.sigmoid_fn,
    kernel_initializer: new ones_initializer(),
    bias_initializer: new random_uniform_initializer(minval: -x1, maxval: -x0),
    name: "hidden");
 
var model = tf.layers.dense(hiddenLayer, units: 1, name: "output");
 
var cost = tf.losses.mean_squared_error(output, model);
 
var training = new GradientDescentOptimizer(learning_rate: learningRate).minimize(cost);
Code sample.
Read Our ML Blog

Features


  • Access the full set of TensorFlow APIs

    • Build computation graphs, and run them in sessions
    • Use Keras-style high-level APIs
    • Build fast data pipelines, keep logs and model checkpoints
    • Use estimators and the full power of tf.contrib
    • Use eager mode to transform data interactively
    • Many more
  • Train and run models on any hardware platform: CPUs, GPUs, TPUs

  • Use distributed training features

  • Track your training progress with TensorBoard

  • Easily port numerous existing TensorFlow examples

    • From simple numerical computation samples to state-of-art models like AlphaZero - the new world's Go champion by DeepMind.
    • Our GPT-2 demo was built in one week just a month after OpenAI released their first model, and included both training and infrerence, demonstrating incredible time-to-market with LostTech.TensorFlow
  • Get started quickly with a collection of samples

  • Seek help with the growing community

  • Use C# for machine learning

    • Static typing when possible, fallback to dynamic in corner cases
    • IDE support: code completion, documentation hints for classes, functions, and parameters
    • Support for C# 8.0 features, such as ranges
    • Can be used from C# interactive, and C# kernel for Jupyter
  • LostTech.TensorFlow is about 18% faster than TensorFlow.NET on a CNN training benchmark


Comparison with TensorFlowSharp


TensorFlow.NET LostTech.TensorFlow
Load TensorFlow models
Train existing models
Create new models with low-level API
Create new models with high-level API
Latest algorithmsSomeMost
DependenciesTFTF + Python
TensorBoard integration
Estimators
Dataset manipulation via tf.data
tf.contrib✓*
Commercial support
Performance1x1.18x
TPU support
AMD GPU support


Documentation & Tutorials



Get it now!