What is our primary use case?
In one of my latest projects, I used convolutional neural networks along with several other models for Finance; The objective was to predict future Close Price of S&P500 index. And in the end, I discovered that an ensemble model of convolutional neural networks works the best; I got a very low error and pretty good accuracy. That was my most recent project.
Another project that I used the solution for was using convolutional neural networks was in visual recognition in which the goal was to take a picture of somethin. Then the model would recognize what the images are. That's the pretty standard use case of convolutional neural networks. Along with that, I also used generative adversarial networks and style transfer in TensorFlow.
What is most valuable?
The primary feature that I personally like is the fact that TensorFlow allows us to utilize GPUs. At present, in data-driven deep learning, the most important thing is the usage of GPUs which accelerate the training of the model by many folds. What I love about TensorFlow is that it allows me to use GPUs.
TensorFlow is a framework that makes it really easy (and quick) to use deep learning. For example, it has an API, which is called 'Sequential API' , and using that, you can create a whole Deep learning model in about five lines of code. That's another core benefit from my perspective.
What needs improvement?
TensorFlow is primarily geared towards Python community at present. JavaScript is a different thing and all the websites, web apps and all the mobile apps are built-in JavaScript. JavaScript is the core of that. What can be improved with TensorFlow is how it can mix in. How the JavaScript developers can use TensorFlow.
There's a huge gap currently. If you are a web developer, then using Machine Learning with TF is not as straightforward as using a regular Javascript library by reading its documentation. TensorFlow should provide a way to do that easily.
What do I think about the stability of the solution?
TensorFlow is very stable. It's very reliable. Training a model won't halt in the middle for unknown backend issues. Behavior of each TF layer is predicable based on its documentation. It's one of the top frameworks. If you want to do deep learning, then TensorFlow is the way to go.
On the other hand, the environment on cloud you use for TensorFlow is a separate story: there are both paid and free versions. For example, Google Colab provodes free aceess to unlimited GPUs yet it's not stable. You might see frequent disconnections or reset of runtimes. Luckily, the paid versions resolve all such issues for a small price.
Buyer's Guide
TensorFlow
October 2024
Learn what your peers think about TensorFlow. Get advice and tips from experienced pros sharing their opinions. Updated: October 2024.
816,406 professionals have used our research since 2012.
What do I think about the scalability of the solution?
If you're building large models, then TensorFlow is going to be scalable partially because it allows you to use GPUs. If you have a huge data set, and if you want to train it on your local computer, then it is going to take a whole lot of time if you are not using GPUs with TensorFlow.
How are customer service and support?
I've never used their technical support services. I can't speak to how knowledgable or responsive they are.
Which solution did I use previously and why did I switch?
TenserFlow and PyTorch are the two big giants of deep learning and they are widely used. If you want to use deep learning, your first choice is either TensorFlow or PyTorch.
I actually recently developed a whole video tutorial on NLP and all the code was written using PyTorch. I also work in PyTorch.
TensorFlow was recently updated to Version Two. Until a year ago, it was TensorFlow Version One and TensorFlow One and PyTorch were hugely different. PyTorch is more Python-like. If you're writing code in PyTorch, you'll feel like you're simply writing your regular Python code as a developer. TensorFlow-1 was a different design in which the developer will first build the computational graph and later creating a session to execute.
Recently, TensorFlow has been updated to TensorFlow-2. It has been made more like PyTorch due to its popularity. At present, when you are writing code at a high level, for example, in a sequential API, you won't even notice, from a programmer's perspective, that there are many differences in TensorFlow and PyTorch. At the same time, both of them allow us to use GPUs, which is the primary use case.
How was the initial setup?
At present, if you're working on Colab, you do not need to set up or anything or install TensorFlow as Colab is specifically for TensorFlow and PyTorch and they are pretty much built-in and everything is there already. If you're working on a cloud too, you can just write TensorFlow.
In terms of maintenance, from the developer's perspective, it doesn't require any maintenance, however, from the creators of TensorFlow's perspective, they are obviously building TensorFlow and maintaining and optimizing it all the time.
What's my experience with pricing, setup cost, and licensing?
This is an open-source solution.
What other advice do I have?
I primarily work on Google Colab in which everything is installed. The most recent versions of TensorFlow are already installed on the Colab.
I have written a deep learning library, which is like very much TensorFlow and PyTorch. It's like my own miniature version of TensorFlow, which I have written as it was an academic project. TensorFlow hides all the details of like nitty-gritty details like how is it working, how the matrices are being multiplied, how is it being handled on GPUs? All these details have been abstracted. If you're writing a model in TensorFlow, you will write just five lines of code (in Sqequential API), in these five lines everything is happening. When I was developing that library, I learned that those five lines of code acutally map to, say, a 1000 lines of code underneaththe hood. I actually wrote all that in order to learn how exactly it works. I just learned what those a thousand lines are.
TensorFlow is just a tool for deep learning. You can use a complete model, which will recognize images in five lines of code. However, to really do deep learning you have to go underneath the hood and understand how exactly things are working. If you are coming from a different background and you write five lines and you can do a model, that's great, however, for example, if a debugging problem comes, you will be in much better shape if you have learned what's underneath. You will be much better shaped to debug your code. If you better understand your code you can better optimize your code. TensorFlow provides you a layer of abstraction, however, that layer of abstraction is bad in some ways.
Primarily, I'm a machine learning engineer. Most of my projects are on using TensorFlow, from my perspective I use TensorFlow a lot and PyTorch occasionally. I also am a full stack developer, I develop apps using React, Django, and D3 yet I don't work a lot in that area. Primarily I work from TensorFlow. From my perspective, they are widely used.
Overall, I would rate the solution ten out of ten. It's very good.
Which deployment model are you using for this solution?
Public Cloud
If public cloud, private cloud, or hybrid cloud, which cloud provider do you use?
Google
Disclosure: I am a real user, and this review is based on my own experience and opinions.
Excellent review. As a newbie to TensorFlow I really enjoyed reading this.