TrustRadius: an HG Insights company

TensorFlow

Score8 out of 10

55 Reviews and Ratings

What is TensorFlow?

TensorFlow is an open-source machine learning software library for numerical computation using data flow graphs. It was originally developed by Google.

Categories & Use Cases

Robust, stable, reliable but not the simplest/most flexible option

Use Cases and Deployment Scope

Used it in the past with Keras to finetune and deploy a NER model. Keras is a nice library on top of TensorFlow but it is very opinionated, more than PyTorch for example.You can use TensorFlow without Keras to develop your model but in such as case it makes more sense to use PyTorch/Jax.

The big advantage of TensorFlow is also the serving, with TensorFlow serving it is quite easy to deploy the model (literally a matters of minutes with reasonable performance), however performance wise it is not always the best, I often get better throughput with ONNX conversion of the model then deployment with TensorRT at then expense of more intermediary steps (tradeoff depending on the load expected for the model).

I think TensorFlow got a bad wrap in the community due to the handling of the transition from version 1 to version 2 that was a bit chaotic, similarly when Google dropt the support of TensorFlow-Swift fears of "yet another project that Google will kill" intensified, but TensorFlow 2 can still be a good choice for a lot of models especially BERT based (NER, QA, etc.)

Pros

  • Model serving
  • Keras
  • Easy install/docker images
  • Lot of open source projects based on it (RL/GNN/etc.)
  • Lot of pre-finetuned BERT based models

Cons

  • Too much abstraction
  • Conversion of PyTorch models not that obvious sometimes

Return on Investment

  • Good NLP model
  • Fast inference
  • Fast deployment

Alternatives Considered

Pytorch, JAX and Keras

Other Software Used

Pytorch, JAX

Tensorflow - a feature rich & easy to use distributed open source ML framework

Pros

  • A vast library of functions for all kinds of tasks - Text, Images, Tabular, Video etc.
  • Amazing community helps developers obtain knowledge faster and get unblocked in this active development space.
  • Integration of high-level libraries like Keras and Estimators make it really simple for a beginner to get started with neural network based models.

Cons

  • Profiling the TensorFlow (TF) graph for performance optimizations is still a challenge due to lack of proper documentation.
  • In our experiments with using TF-GPU on Kubernetes, we see constant memory issues causing nodes to crash.
  • There is still a significant learning curve and it's not as simple as other popular Python libraries. Having said that, the TF team and community are actively working on this problem.

Return on Investment

  • Tensorflow (TF) has really simplified building complex models in a few lines of manageable code.
  • TF Serving makes deployment very easy too.
  • TensorBoard makes monitoring a pleasing task for features like charts, embeddings, histograms, what-if tools, etc.
  • The minimal learning curve is absolutely worth the effort for all the benefits.

Tensor Flow Reviews

Pros

  • Multi-GPU support. It works; the documentation is simple and clear. You’ll still need to figure out how to divide and conquer your problem, but isn’t that part of the fun?
  • Training across distributed resources (i.e., cloud). As of v0.8, distributed training is supported.
  • Queues for putting operations like data loading and preprocessing on the graph.
  • Visualize the graph itself using TensorBoard. When building and debugging new models, it is easy to get lost in the weeds. For me, holding mental context for a new framework and model I’m building to solve a hard problem is already pretty taxing, so it can be really helpful to inspect a totally different representation of a model; the TensorBoard graph visualization is great for this.
  • Logging events interactively with TensorBoard. In UNIX/Linux, I like to use tail -f to monitor the output of tasks at the command line and do quick sanity checks. Logging events in TensorFlow allows me to do the same thing, by emitting events and summaries from the graph and then monitoring output over time via TensorBoard (e.g., learning rate, loss values, train/test accuracy).
  • Model checkpointing. Train a model for a while. Stop to evaluate it. Reload from checkpoint, keep training.
  • Performance and GPU memory usage are similar to Theano and everything else that uses CUDNN. Most of the performance complaints in the earlier releases appear to have been due to using CUDNNv2, so TensorFlow v0.8 (using CUDNNv4) is much improved in this regard.

Cons

  • RNNs are still a bit lacking, compared to Theano.
  • Cannot handle sequence inputs
  • Theano is perhaps a bit faster and eats up less memory than TensorFlow on a given GPU, perhaps due to element-wise ops. Tensorflow wins for multi-GPU and “compilation” time.

Return on Investment

  • Positive Impact- As I mentioned before its open source. Very easy to learn for average programmer/ developer. We were able to design a POC model for understanding the patient appointment cancellation snd reasons behind it in 3 week time frame.
  • Negative Impact- If you are using tensor flow for small project it works fine. If you are trying to build a model for face recognition it will be hard to program and train the system. It needs data to be processed before hand cannot learn on the go.

Other Software Used

Theano

Predict with confidence : Tensorflow

Pros

  • Support for many libraries and programming languages.
  • Ability to use GPU and TPU - hence faster execution.
  • Low effort in getting started in development, hence ease of learning.

Cons

  • Graphic interface to create layers can help beginners.
  • Detailed tutorials on what goes behind the scenes in each layer. Currently, the tutorials don't focus on that.
  • Better support to integrate with files on the cloud.

Return on Investment

  • Ability to make better predictions.
  • Increase in profit from equity investments on a consistent basis.
  • Move towards digital transformation in the company and a better brand name.

Alternatives Considered

Microsoft Azure Machine Learning Workbench and Kernel-based Virtual Machine

Other Software Used

Auth0

Usability

My review on Tensorflow

Use Cases and Deployment Scope

We use it for state of the art machine learning / deep learning models for real time inference in our products.

Pros

  • Model saving and prediction.
  • Training is faster.
  • It's well documented.

Cons

  • Create more high level APIs like keras.
  • Provide better support for keras.
  • Try to decrease model size.

Most Important Features

  • Easy to train.
  • Integration in Java.
  • It's reasonable size.

Return on Investment

  • It allows us to do machine/deep learning in Java.
  • Well documented so easy to use.
  • Good APIs like keras are available for it.

Alternatives Considered

Pytorch

Other Software Used

Pytorch, PyCharm, IntelliJ IDEA