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



