TensorFlow, what else?
January 18, 2019
TensorFlow, what else?
Score 9 out of 10
Overall Satisfaction with TensorFlow
Obviously, TensorFlow is a great opportunity for everyone who is interested in ML and DL area. We wanted to use TensorFlow in our company, majorly focusing on helping the Operation and Planning domains. Also, it is used as POC for Clearance domain. The purpose is quite similar, by using the DL Technics, through injecting large amount of historical data, learning the patterns, predicting the future trend or advice the best candidate suggestions. Some examples include Commercial Invoice recognition and classification, HS Code prediction, Transportation Time Prediction, Volume Density Prediction, Dimension Prediction.
- Data pipeline implementation is quite good, loading large amounts of data and pre-process it in an efficient way is no more issue for us
- It supports all major DL algorithms and network layouts such as ConvNets, RNN, LSTMs, Word2Vec, and even the latest transformer architecture
- The abstraction for the device is perfectly done and its support seamlessly for multiple GPU and even TPU will bring a lot of performance gain for enterprise scoped solution while still keep the flexibility
- The TensorBoard is amazing. I haven't seen a similar thing in other frameworks on the market. It allows us to quickly understand and debug the model with the info visualization which makes understanding much better
- A very supportive community, which is the key for sharing the ideas and find the quick and best solutions
- TensorFlow has its own model and terminology, which is not quite the same as the normal Python styled other frameworks, so in order to master it, the learning curve is a little bit steep, and as a by-product of the fast iteration and release, sometimes the documentation is not quite catching up
- TensoFlow is based on Design Model Then Run Model concept, which means the model itself is static. Maybe it could also borrow some ideas from PyTorch, which is more intuitive and supports dynamic model building
- I only can nominate the positive impact-- it is open source so there's no financial cost, with full functions and features. What it brings to us is more objective, reliable patterns learned from the data, without having to spend a long time and rely on a lot of domain specialists' limited knowledge, and its output is even better than human (sometimes too subjective) decision
Keras is built on top of TensorFlow, but it is much simpler to use and more Python style friendly, so if you don't want to focus on too many details or control and not focus on some advanced features, Keras is one of the best options, but as far as if you want to dig into more, for sure TensorFlow is the right choice
I think TensorFlow is very good for people who want to dive deeper and have full control of the NN layer of details. It is a production-ready design and supports the distributed environment, so it is very good for mature and enterprise production. If the user is looking for reusing some standard models and wants to do some quick POC without too much in-depth understanding of the NN, then maybe something like Keras would be the better wrapper to begin with.