Skip to content

Latest commit

 

History

History
71 lines (46 loc) · 1.53 KB

README.md

File metadata and controls

71 lines (46 loc) · 1.53 KB

ExTensorflow

Tensorflow wrapper for elixir

There is just enough here to get something running. It's assumed you have Elixir installed. Follow the instructions here: https://elixir-lang.org/install.html

First install the tensorflow C Api: https://www.tensorflow.org/install/install_c

Most of the work here is based on this blog post:

Excellent nif example code

http://andrealeopardi.com/posts/using-c-from-elixir-with-nifs/

You need to set ERL_INCLUDE_PATH MacOS:

export ERL_INCLUDE_PATH=/usr/local/Cellar/erlang/20.0/lib/erlang/usr/include

Linux

export ERL_INCLUDE_PATH=/usr/lib/erlang/usr/include

Run

make ex_tensorflow.so

To make the NIF shared library that elixir will load.

Run tests to make sure things work:

LD_PRELOAD=/usr/local/lib/libtensorflow.so mix test

You need the LD_PRELOAD to make sure the tensorflow shared library is loaded.

Load iex:

LD_PRELOAD=/usr/local/lib/libtensorflow.so iex -S mix

example.ex has an exmple to run a classification using the inception5 model. You need to run

curl -o inception5h.zip https://storage.googleapis.com/download.tensorflow.org/models/inception5h.zip
mkdir model
cd model
unzip ../inception5h.zip

to setup a model. You'll need a test image. I've been using:

curl -o parrot.jpg http://weknowyourdreams.com/image.php?pic=/images/parrot/parrot-06.jpg

but any jpeg image will do. The from the iex prompt you can run:

Example.classify("parrot.jpg")

to run the model. (Doesn't work yet. )