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

kip
Image is an image processing library for Elixir. It is based upon the fabulous vix library that provides a libvips wrapper for Elixir. I...
574 16576 179
New
tmbb
I’ve published the first version of my Makeup library. It’s a syntax highlighter for Elixir in the spirit of Pygments, Currently it highl...
New
Qqwy
Hello everyone, I wrote a small library today called MapDiff. It returns a map listing the (smallest amount of) changes to get from map...
New
danschultzer
None of the current solutions worked well for me, so I went ahead and built a user management system from scratch. This project took far...
548 27727 240
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
alisinabh
Hey everyone i’ve developed a library for Jalaali calendar for elixir which supports converting Gregorian dates to Jalaali and vice vers...
New
zorbash
I created Kitto a framework for dashboards inspired by Dashing. [demo] The distributed characteristics of Elixir and the low memory foo...
New
wmnnd
Hi there, for my project DBLSQD, I needed a file storage solution that is a bit more flexible than Arc. Because I thought others might f...
New
engineeringdept
I’ve just released the first version of Snap, an Elasticsearch client. It borrows ideas about application structure and process managemen...
New
bryanjos
Hi, I wanted share a small library we at Revelry Labs made for rendering react components from the server side. There are instructions fo...
New

Other popular topics Top

Qqwy
Update: How to use the Blogs & Podcasts section You can post links to your blog posts or podcasts either in one of the Official Blog...
3268 119930 1237
New
Brian
What is the proper way to load a module from a file in to IEX? In the python world, doing something like this pretty standard: from ....
New
vonH
In asking this question I am more interested about the expressiveness of the language itself and less concerned about the availability of...
New
openscript
Hello! Sorry for this astonishing simple question, but I’m really stuck. I try to set up the intellij-elixir plugin, but I don’t know ho...
New
stefanchrobot
What’s the safe way to decode a JSON string into a struct? I want to avoid calling String.to_atom. Jason.decode can give me a map with st...
New
myronmarston
The Elixir Typespec docs show the following syntax for keyword lists in typespecs: # ... | [key: type] # keyword lis...
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
msaraiva
Surface is an experimental library built on top of Phoenix LiveView and its new LiveComponent API that aims to provide a more declarative...
564 42633 214
New
lucidguppy
I have a super simple question about elixir - how would I take a file like this foo bar baz and output a new file that enumerates th...
New
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

Sub Categories:

We're in Beta

About us Mission Statement