TrustRadius Insights for TensorFlow are summaries of user sentiment data from TrustRadius reviews and, when necessary, third party data sources.
Pros
Clear Documentation: Many users have found the documentation for multi-GPU support in TensorFlow to be simple and clear. This has been helpful for users who are new to working with multiple GPUs, as it allows them to easily understand and implement this feature.
Powerful Visualization Tools: Reviewers appreciate the ability to visualize the graph using TensorBoard, as it helps them understand and navigate through complex models. The interactive nature of TensorBoard also allows users to log events and monitor output over time, providing a convenient way to perform quick sanity checks.
Active Community Support: Users highly value the active community surrounding TensorFlow, which has helped them learn faster and overcome obstacles in their development work. The availability of readily available answers and top-notch documentation from the community has been instrumental in ensuring a smooth experience while working with TensorFlow.
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
Likelihood to Recommend
Well suited: - pretrained BERT-base model ready to deploy - IoT with TensorFlow lite and the edge TPUs - Domain where datasets are available in Huggingface (e.g., medical model)
Less well suited: - Small project due to the complexity/less resource to learn - New model tends to use PyTorch
Tensorflow is a good intermediate level for building neural networks, or more generally, differentiable programming. Tensorflow v1 and Tensorflow v2 have very significant architectural differences: v1 is about defining a computational graph, upon which operations are performed (like "do one step of backprop" or "batch-evaluate on this data"), while v2 does more computations "live" and is built more like, essentially, a heavy-duty calculator with a differentiable history. v2 is tightly integrated with Keras, so if you intend to use industry-standard layers and architectures from Keras, then Tensorflow is probably your best bet. Both v1 and v2 allow you to define your own layers, or do other differentiable programming tasks; for instance, differentiable physics engines have been written in Tensorflow.
Pros
Integrating with Keras.
Working on CPU/GPU/TPU neutrally.
Exporting to TFLite for browsers or edge computing.
Cons
The massive changes between v1 and v2 can be confusing when looking at examples online.
TensorFlow is losing market ground to PyTorch and JAX.
Likelihood to Recommend
If you're doing NN training, in particular, or if you have reasons why you might need customs layers or unusual architectures, then TF is probably your best bet. TF is also basically your only bet if you're planning on using any TPU edge devices, such as the Coral.
VU
Verified User
Professional (Research company, 10,001+ employees)
TensorFlow is used as a development platform for deep learning algorithms, in particular for: 1. Recommendations: selecting the best templates to recommend to users via email in the various countries the company has a market in, over 100 languages supported, 2. User feedback classification: when users provide feedback, natural language processing algorithms implemented in TensorFlow and Keras are used to classify issues so that stakeholders can identify the major issues with a product/product release, 3. Learning-to-rank for search: there is some development on improving search results by switching to deep learning algorithms from a gradient boosting one, and TensorFlow provides that capability, and 4. Computer vision: some experimentation performed on object detection and image classification.
Pros
TensorFlow is fairly easy to use, with adequate tutorials to get any user started quickly.
Tooling around TensorFlow, such as TensorBoard, is a gold standard: it has made the training and debugging process so much easier compared to most other deep learning platforms.
Community support for TensorFlow is very good. If there is a problem, there usually is an answer by just a little Googling. Also the documentation for TensorFlow is often top notch.
Cons
Prior to TensorFlow 2.0, setting up data ingestion for TensorFlow can be a huge pain. So much so that TensorFlow Lite and alternatives such as Keras make it more palatable. Things are changing with TensorFlow 2.0 though.
Some error messages from TensorFlow can be quite difficult to understand. For instance, a recent error using the dot product layer in TensorFlow 2.0 made it seem like there was a problem with data ingestion, but by downgrading to TensorFlow 1.14.0, the problem disappears.
Tooling with Bazel (our choice for a build tool) in our monorepo is a bit of a nightmare, partly because Bazel has poor Python support. However, we were able to integrate PyTorch easily with Bazel, but not TensorFlow.
Would love to have better bindings with the JVM, rather than just Python, considering that many companies have a JVM-based stack, making it easier to integrate.
Likelihood to Recommend
TensorFlow is great for most deep learning purposes. This is especially true in two domains: 1. Computer vision: image classification, object detection and image generation via generative adversarial networks 2. Natural language processing: text classification and generation.
The good community support often means that a lot of off-the-shelf models can be used to prove a concept or test an idea quickly. That, and Google's promotion of Colab means that ideas can be shared quite freely. Training, visualizing and debugging models is very easy in TensorFlow, compared to other platforms (especially the good old Caffe days).
In terms of productionizing, it's a bit of a mixed bag. In our case, most of our feature building is performed via Apache Spark. This means having to convert Parquet (columnar optimized) files to a TensorFlow friendly format i.e., protobufs. The lack of good JVM bindings mean that our projects end up being a mix of Python and Scala. This makes it hard to reuse some of the tooling and support we wrote in Scala. This is where MXNet shines better (though its Scala API could do with more work).