Skip to content
Permalink
Branch: master
Find file Copy path
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
96 lines (65 sloc) 6.47 KB

TensorFlow for VASmalltalk

This is a TensorFlow wrapper for VASmalltalk
Report a defect | Request feature

TensorFlow is a Google open source machine learning library for research and production. And this is a wrapper to be used from a higher level language like VASmalltalk.

License

  • The code is licensed under MIT.
  • The documentation is licensed under CC BY-SA 4.0.

Supported platforms and versions

Currently we tested this wrapper on Linux and Windows, both on x86 and x64. In addition, we tested on ARM (Raspberry Pi 3B+ and Raspbian Buster), ARM64 (Rock64 and Armbian Buster) and ARM64 with GPU support (Nvidia Jetson Nano).

VASmalltalk needed version is 9.2 or above and we have only tested on TensorFlow versions 1.13.x and 1.14.x.

Installation

  • Download the 9.2 ECAP 3 or newer from Instantiations. If any of the following steps cannot be achieved, it might be due to last minute changes in the TensorFlow configuration maps and/or improvements on the VAST VM or the base library. Please contact us for an up-to-date download.
  • Install TensorFlow for C for your operating system (download one of the tested versions).
  • For Windows installations, make sure Microsoft Visual C++ Redistributable for Visual Studio 2017 is installed.
  • Ensure tensorflow shared library (.so or .dll) is findable by OS lookup procedure or reference full path in VAST ini file.
  • Add TENSORFLOW_LIB key/value under [PlatformLibrary Name Mappings] section in abt.ini file. Some examples:
TENSORFLOW_LIB=tensorflow
TENSORFLOW_LIB=/usr/local/lib/libtensorflow_framework.so.1.14.0
TENSORFLOW_LIB=/home/mpeck/Instantiations/TensorFlow/libtensorflow-cpu-linux-x86_64-1.14.0/lib/libtensorflow.so.1.14.0
TENSORFLOW_LIB=c:\Users\mpeck\Documents\Instantiations\tensorflow.dll
TENSORFLOW_LIB=z:\Instantiations\TensorFlow\libtensorflow-cpu-windows-x86_64-1.13.1\lib\tensorflow.dll
  • Clone this repository.
  • From the configuration map browser, import all versions of the TensorFlow map from envy/TensorFlow.dat. Then "Load With Required Maps" the latest version of it.
  • Run SUnit Suite for all TensorFlow map (right click on the map -> Test Loaded Applications). You should see around 260 unit tests and most of them passing. As of this writing, VAST 9.2 ECAP 3 + TensorFlow CM 0.45, in Windows 7, achieves 215 tests passing, 3 expected failures, 40 errors and 1 freezes and crashes image (TestTFBuffer>>#testNewFree).
  • Explore the documentation.

Examples

We will be submitting more and more examples in TensorFlowExamplesApp. So far the only working example is LabelImage which loads a pre-trained TensorFlow network and use it to recognize objects in images. You can read its class comments for details, instructions and possible uses.

There is also a full detailed blog post about this example.

LabelImage

You can also run a Inception V3 like what is described here:

LabelImage

We also have a more advanced Object Detection example with bounding boxes, labels and scores. This blog post goes over the glory details of this example:

ObjectDetectionZoo

Running TensorFlow and VASmalltalk on ARM

We believe that running TensorFlow and VASmalltalk on ARM-based boards is really interesting. From limited devices such as a Raspberry Pi to a Nvidia Jetson.

We have compiled TensorFlow C library for ARM and ARM 64 and have been playing with different operating systems and boards such as Raspberry Pi 3B+ (Raspbian), Rock64 (Armbian) and soon Nvidia Jetson Nano and XT2.

Building TensorFlow from scratch on ARM is a bit complicated so we try to document this process on blog posts as we learn. For the moment, you can checkout these:

Blog Posts

Acknowledgments

Contributing

Check the Contribution Guidelines

You can’t perform that action at this time.