anshuman23

anshuman23

Tensorflex: Tensorflow bindings for Elixir

Hello all,

I have been working on my proposed project called Tensorflex as part of Google Summer of Code 2018.. Tensorflex can be used for making predictions from input data on pre-trained Tensorflow models. Training as of now is only supported in the Python API (also C++ at a low-level) but Tensorflex fully supports Inference and can be used for making predictions. Moreover, Tensorflex is being worked on and improved everyday so if there are any particular features anyone has in mind, please feel free to get in touch with me!

As an introduction to using Tensorflex for making predictions from saved models, I have written a blog post: http://www.anshumanc.ml/gsoc/2018/06/14/gsoc/

To follow development, make sure to watch the Github repository here: https://github.com/anshuman23/tensorflex

Cheers!

Most Liked

anshuman23

anshuman23

Hello Juha! Thanks for the vote of confidence :smile:

So any bindings for Tensorflow can only be written around the C API, which is publicly exposed by Google. Unfortunately, they have not added Training functionality to the C API yet. So we will have to wait and see when they do that and then we can support it in Tensorflex too. Also, most other Tensorflow bindings, such as the ones officially written for Golang, only support Inference.

anshuman23

anshuman23

Hello!
@mat_garland_1 and others who might be interested, here is the link for the PR which showcases how to use an RNN-LSTM model for sentiment analysis in Tensorflex. I am going to be working on documentation and a blog post for this as well as the Inception model over the next week, but the description for this PR is sufficiently detailed to get a general idea in the meanwhile:

leifericf

leifericf

Thank you for creating this library, @anshuman23.

I recently changed my position at work from business developer to data scientist and I’m in the process of digging into a bunch of tools for data wrangling and machine learning.

Python is one of the most common programming languages for data science, due to extensive and robust libraries, such as pandas, NumPy, scikit-learn, TensorFlow, Keras and TensorForce. Those are the primary tools that we use at my workplace at the moment.

I’ll be looking into using Tensorflex as an alternative for deploying machine learning models.

One thing I’m curious about: When you created Tensorflex, did you envision for it to become to Elixir sort of what Keras is to Python? That is, not just for model-serving, but also for training artificial neural networks, etc.—A more generic abstraction layer on top of TensorFlow, CNTK and Theano.

Elixir with it’s highly concurrent capabilities, focus on data transformation (e.g. data pipelines) and strong support for meta-programming, lends itself very well to data science and machine learning. It makes me very excited to see that other people have similar thoughts.

There is an incredible amount of potential for Elixir within data science and machine learning.

CptnKirk

CptnKirk

I’m interested in this project. But I’d be very interested in this as a case study of crafting Elixir bindings to C/C++ things. There’s plenty of FUD around NIFs and native binding in Erlang/Elixir. Yet this type of thing is ubiquitous in other languages.

Would love to know:

  • How you got started
  • What resources you used
  • Pitfalls
  • Performance
  • Why not wrap all the things?
anshuman23

anshuman23

Hello Jim! I completely agree and I’d love to help out.

To do justice to your question, I will post a detailed answer as a subsequent blog post soon and share the link here.

Cheers!

Where Next?

Popular in Libraries Top

Jskalc
Hi! Today, after a couple weeks of development I’ve released v0.1 of LiveVue. It’s a seamless integration of Vue and Phoenix LiveView, i...
New
vic
Expat is a tiny experiment I did for extracting patterns and being able to reuse them (compose and share patterns between elixir librarie...
New
dbern
I’m excited to announce that TaxJar has developed and open-sourced DateTimeParser. We developed it because we found a need to parse user ...
New
tmbb
I’ve been working on two packages (not on hex.pm yet) to build admin interfaces for phoenix apps: bureaucrat - which contains a bunch ...
New
tompave
Hello there, I would like to share a feature toggles library (AKA feature flags) I’ve been working on. The main package is FunWithFlags...
New
entone
ExARI An Elixir library for interfacing with Asterisk using the ARI protocol. Be sure to check out the example application https://git...
New
kelvinst
Hey everyone! Well, we made this lib a while ago and now we decided to finally go out and public with it! It’s a tool for creating and m...
New
mbuhot
Leverage Open Api 3.0 (Swagger) to document, test, validate and explore your Plug and Phoenix APIs. Generate and serve a JSON Open API ...
New
josevalim
EDIT: since Ecto 3.0 final version is out, this post was amended to use the final versions in the instructions below. Hi everyone, We a...
New
mbuhot
EctoJob A transactional job queue built with Ecto, PostgreSQL and GenStage Available on Hex.pm: ecto_job | Hex Docs: API Reference — ec...
New

Other popular topics Top

TunkShif
This post is an instruction guide to help you setup your Neovim for Elixir development from scratch. It includes general information on h...
273 38985 115
New
9mm
I am constructing a JSON object (map) and I need to conditionally set a field. I’m trying to write proper elixir-way code… and I’m at a l...
New
peerreynders
Manning 2016 Halloween weekend sale via Deal of the Day Friday, October 28 - Half off all MEAPs - code WM102816LT Saturday, October 29 ...
326 29600 154
New
srinivasu
How to handle excepions in elixir? Suppose i have A, B, C ,D, E modules. and each module has get() function. A.get() method will call th...
New
pmjoe
I have a relationship of love and hate with Elixir. Lots of things are just absolutely right, but there are some things that are kind of ...
New
yawaramin
In the Dialyzer docs ( http://erlang.org/doc/man/dialyzer.html#requesting-or-suppressing-warnings-in-source-files ), there is a way to tu...
New
polypush135
As many of you may have realized by now (sorry for all the posts here) I’ve been working on a db problem where I’m trying to aggregate a ...
New
chrismccord
As promised, the first release candidate of Phoenix 1.3.0 is out! This release focuses on code generators with improved project structure...
New
ashish173
I am using Ecto timestamps with postgres, I can see the timestamps() use the :naive_dateime but for my use case I wanted to store the ti...
New
stefanluptak
Hello everybody, usually, I use a 29" ultra-wide monitor for VSCode which can easily accomodate explorer (files panel) + file with code ...
New

Sub Categories:

We're in Beta

About us Mission Statement