TensorFlow-HRT is a project that is maintained by OPEN AI LAB, it uses heterogeneous computing infrastructure framework to speed up Tensorflow and provide utilities to debug, profile and tune application performance.
- The ARM Computer Vision and Machine Learning library is a set of functions optimised for both ARM CPUs and GPUs using SIMD technologies. See also Arm Compute Library.
- Tensorflow is a fast open framework for deep learning. See also Tensorflow.
Arm Compute Library Compatibility Issues :
There are some compatibility issues between ACL and Tensorflow ops.
- Tensorflow default data format is NHWC and HWIO, but ACL only supports NCHW and OIHW. In order to test TensorFlow-HRT, macro TEST_ACL is used to enable convert data format between ACL and TF at compiling.
- ACL does not support some pooling ops, such as AvgPooling with 3x3 kernel, 1x1 stride and SAME padding.
- ACL does not support some CONV ops, such as testConv2DKernelSmallerThanStrideSame, testConv2D2x2FilterStride2Same, ...
- When using ACL C++ multi-thread, TF often hang. ACL scheduler is set to ST mode for workaround.
- ACL buffer round is different with TF. Both ACL round CEIL and round FLOOR are tried to get the same buffer size as TF. If both fail, an exception is thrown.
- Input/output/weight shape may be changed at inference. The shapes of all inputs must be checked before run ACL OP.
Performance is not good. In the future, TensorFlow-HRT needs to skip ACL runtime layer or only uses ACL very low layer APIs.
The Tensorflow version is 31b79e42b9e1643b3bcdc9df992eb3ce216804c5.
Version 0.0.1 - Jan 31, 2018
Support Arm Compute Library version 17.12 and following TF ops
- Pooling op
- Convolution op
- Softmax op
- LRN op
- Matmul op
- Sigmoid op
- Tanh op
- Relu op
- Softplus op
TensorFlow is an open source software library for numerical computation using data flow graphs. The graph nodes represent mathematical operations, while the graph edges represent the multidimensional data arrays (tensors) that flow between them. This flexible architecture lets you deploy computation to one or more CPUs or GPUs in a desktop, server, or mobile device without rewriting code. TensorFlow also includes TensorBoard, a data visualization toolkit.
TensorFlow was originally developed by researchers and engineers working on the Google Brain team within Google's Machine Intelligence Research organization for the purposes of conducting machine learning and deep neural networks research. The system is general enough to be applicable in a wide variety of other domains, as well.
See Installing TensorFlow for instructions on how to install our release binaries or how to build from source.
People who are a little more adventurous can also try our nightly binaries:
Nightly pip packages
- We are pleased to announce that TensorFlow now offers nightly pip packages
under the tf-nightly and
tf-nightly-gpu project on pypi.
pip install tf-nightlyor
pip install tf-nightly-gpuin a clean environment to install the nightly TensorFlow build. We support CPU and GPU packages on Linux, Mac, and Windows.
Individual whl files
- Linux CPU-only: Python 2 (build history) / Python 3.4 (build history) / Python 3.5 (build history)
- Linux GPU: Python 2 (build history) / Python 3.4 (build history) / Python 3.5 (build history)
- Mac CPU-only: Python 2 (build history) / Python 3 (build history)
- Windows CPU-only: Python 3.5 64-bit (build history) / Python 3.6 64-bit (build history)
- Windows GPU: Python 3.5 64-bit (build history) / Python 3.6 64-bit (build history)
- Android: demo APK, native libs (build history)
Try your first TensorFlow program
>>> import tensorflow as tf >>> hello = tf.constant('Hello, TensorFlow!') >>> sess = tf.Session() >>> sess.run(hello) 'Hello, TensorFlow!' >>> a = tf.constant(10) >>> b = tf.constant(32) >>> sess.run(a + b) 42 >>> sess.close()
For more information
- TensorFlow Website
- TensorFlow White Papers
- TensorFlow Model Zoo
- TensorFlow MOOC on Udacity
- TensorFlow Course at Stanford
Learn more about the TensorFlow community at the community page of tensorflow.org for a few ways to participate.