Tensorflow

Ruby bindings for Tensorflow.

Installation

First you'll need to install Tensorflow 2. You can either do a full installation or just install Tensorflow for C. In both cases, you'll need to make sure the tensorflow library is on the system PATH so the Ruby bindings can load it.

Next install the gem:

gem install 'tensorflow-ruby'

Overview

The Ruby bindings are on built on top of TensorFlow's C API which provides access to some, but not all, of TensorFlow's functionality. The Ruby bindings
are designed to mimic the Python API. Just like the Python bindings, Ruby defaults to eager execution mode.

Current Status

Feature Status
Run a predefined Graph Implemented
Graph construction with generated op functions Implemented
Gradients Implemented
Functions Implemented
Trainers Gradient Descent Implemented
Data API 80% Implemented
Tensorboard Support Implemented
Control Flow Not Implemented
Gradient Tape Not Implemented
Keras Not Implemented

Getting Help

To learn how to use the library:

  • Read this file
  • Take a look at the comprehensive test suite - it will show you examples of using all the binding's functionality
  • Review the gem documentation
  • Review the Python API documentation
  • Take a look at the models directory for example implementations (linear regression, mnist neural network, etc.)

Using tensorflow-ruby

Constants

Constants are

a = Tf.constant([1, 2, 3])
b = Tf.constant([4, 5, 6])
a + b

Variables

v = Tf::Variable.new(0.0)
w = v + 1

Math

Tf::Math.abs([-1, -2])
Tf::Math.sqrt([1.0, 4.0, 9.0])

Data::Dataset

# load
train_dataset = Tf::Data::Dataset.from_tensor_slices([train_examples, train_labels])
test_dataset = Tf::Data::Dataset.from_tensor_slices([test_examples, test_labels])

# shuffle and batch
train_dataset = train_dataset.shuffle(100).batch(32)
test_dataset = test_dataset.batch(32)

# iterate
train_dataset.each do |examples, labels|
  # ...
end

Contributing

Everyone is encouraged to help improve this project. Here are a few ways you can help:

To get started with development and testing:

git clone https://github.com/cfis/tensorflow-ruby.git
cd tensorflow-ruby
bundle install
rake test