What is TensorFlow API?
TensorFlow is similar to a python package and a lot of features are similar to that of Python. But the main core of TensorFlow is — distributed runtime. This functionality implements in many languages and one of them is Python.
This is the diagram of TensorFlow’s distributed Execution engine or the runtime engine. The other way to visualize the above diagram is to think of it as a virtual machine whose language is TensorFlow. The runtime of TensorFlow is written in C++ language but the frontend as you can see can be implemented by using various languages like C, C++, R, Java etc. The use of these API’s in TensorFlow is explained below.
Let’s revise TensorFlow Features
a. C API for TensorFlow
The only APIs having the official backing of TensorFlow are C and Python API (some parts). C APIs should be used whenever you are about to make TensorFlow API for some other languages as lots of languages have ways to connect with C language.
b. C++ API for TensorFlow
The runtime of TensorFlow is written in C++ and mostly C++ is connected to TensorFlow through header files in Tensorflow/cc. C++ API still is in experimental stages of development but Google commits to working with C++.
c. Python API for TensorFlow
Python is the most recognizable and “the main” language when it comes to TensorFlow and its development. It was one of the first languages supported by TensorFlow and still supports most of the features. It seems as TensorFlow’s functionality defines in Python and then moved to C++.
The Python API is so diverse in nature that you will have to choose which level of API in TensorFlow you want to work on.
d. R API for TensorFlow
The R API for TensorFlow made by RStudio has some different approach than the traditional approach for providing API support. R API fully contains the Python API which is different from what TensorFlow goes with its APIs. But the users of R have all the access to features of Python API.
Further, one can see there are other APIs available for Java, Go, Rust, Haskel and some of the other unofficial ones outside of TensorFlow project- C# and Julia.
Read about TensorFlow Installation
e. APIs Inside TensorFlow Project
The API’s inside TensorFlow are still Python-based and they have low-level options for its users such as tf.manual or tf.nnrelu which are used to build neural network architecture. These APIs also use to aid in designing a deep neural network having higher levels of abstraction.
Using the Estimators API, you can define an interface and can deliver models to fit into the Estimator system. Canned estimators — pre-defined models are present there which follows the estimator conventions for e.g., LinearRegressor or DNNClassifier. The functionality available through this collection are as follows –
- automatic checkpoints
- automatic logging
- separate training/evaluation/prediction
- simplified training distribution
TensorFlow is offering sophisticated multi-thread, multi-queue, and queue-runner design that use for loading data. The developers of TensorFlow delivered the Dataset API to address this issue and provide a candy interface as a bonus. The following diagram is from Google/IO which has added XLA.
Other known options to consider for API’s are TF-Slim, Keras, sci-kit-learn.
f. APIs outside TensorFlow Project
Some other TensorFlow API’s which develope outside of TensorFlow project by machine learning enthusiasts. Let’s see some TensorFlow API outside TensorFlow Project:
- TFLearn: This API shouldn’t be seen as TF Learn, which is TensorFlow’s tf.contrib.learn. It is a separate Python package.
- TensorLayer: It comes as a separate package and is different from what TensorFlow’s layers API has in its bag.
- Pretty Tensor: It is actually a Google project which offers a fluent interface with chaining.
- Sonnet: It is a project of Google’s DeepMind which features a modular approach.
So, this was all about the TensorFlow API Documentation. Hope you like our explanation.
Conclusion
In this article, we saw what TensorFlow API are and how they work. Moreover, we got to know about the TensorFlow API for different languages. In addition, we also studied how TensorFlow is different from Python and how it got its own identity in machine learning and deep neural network areas. At last, we discussed APIs Inside and Outside of TensorFlow Project. Next, we will see the working with MNIST in TensorFlow. Furthermore, if you have any query, feel free to ask in the comment section.