AMIs are Amazon Machine Images, virtual appliance deployed on EC2. The AWS Deep Learning AMIs provide machine learning practitioners and researchers with the infrastructure and tools to accelerate deep learning in the cloud, at scale. Users can launch Amazon EC2 instances pre-installed with deep learning frameworks and interfaces such as TensorFlow, PyTorch, Apache MXNet, Chainer, Gluon, Horovod, and Keras to train sophisticated, custom AI models, experiment with new algorithms, or to learn new…
N/A
TensorFlow
Score 8.1 out of 10
N/A
TensorFlow is an open-source machine learning software library for numerical computation using data flow graphs. It was originally developed by Google.
Suitable: 1. Best for quickly setting up an instance with pre-installed libraries. 2. Ideal for people in Deep Learning space who struggle with Cuda / Nvidia driver installations. Not suitable: 1. People who want to install custom libraries or different version of those. 2. In these cases, updating the version of libraries many times leads to version mismatch which can cause many errors.
Whenever the problem has the demand for a neural networks based solution, Tensorflow (TF) is a great fit.
The tf.dataset API makes it really simple to create complex data pipelines in a few lines of code.
tf.estimators API abstracts all the complex computation graph creation logic making it very simple to get started.
Eager execution makes it simple to develop a TF graph as debugging the code would be like any other imperative Python program.
TF abstracts all the complexities of scaling it to multiple machines. It has various code and data distribution algorithms ready to use.
Projects like TensorBoard make monitoring the training process really easy. It also gives the ability to view embeddings without any extra code. Their What-If is extremely useful for poking and understanding a black box model. It also has tools to visualize data to quickly check for anomalies.
TF Autograph aims to covert any normal Python code into a distributed program which is quite handy to scale an existing code base.
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
It would be much better if they could provide good documentation and easy ways to understand concepts.
It is difficult to understand the concept behind for example, Tensor Graph, which takes a lot of time.
As you have to write everything, it is time consuming to write the implementation of whole neural network. It would be better if they can provide some wrapper library to make things easier.
Community support for TensorFlow is great. There's a huge community that truly loves the platform and there are many examples of development in TensorFlow. Often, when a new good technique is published, there will be a TensorFlow implementation not long after. This makes it quick to ally the latest techniques from academia straight to production-grade systems. Tooling around TensorFlow is also good. TensorBoard has been such a useful tool, I can't imagine how hard it would be to debug a deep neural network gone wrong without TensorBoard.
Both of these services provide similar functionality and from my experience both are top class services which cover most of your needs. I think ultimately it comes down to what you need each service for. For example Amazon DL AMIs allows for clustering by default meaning I am able to run several clustering algorithms without a problem whereas IBM Watson Studio doesn't provide this functionality. They both provide a wide range of default packages such as Amazon providing caffe-2 and IBM providing sci-kitlearn. My main point is that both are very good services which have very similar functionality, you just need to think about the costs, suitability of features and integration with other services you are using.
Can't seem to choose any deep learning platform in the above, so I'll list it here: 1. Apache MXNet: this has been used for one of our main algorithms for search as an end-to-end pipeline. We chose this because of the Scala bindings, which makes it easier to integrate with out JVM backend. MXNet seems comparable to TensorFlow, although community support is not as good as TensorFlow, and there are issues with memory leaks that are being worked on. TensorFlow in general is easier to use, but MXNet isn't too far behind. 2. Keras: still a favorite. Often I use this when paired with TensorFlow. TensorFlow 2.0 will make it even easier. 3. PyTorch: only used it a little, so it's hard to provide a good opinion. 4. DL4J: used it initially in an early days project because it has good JVM support. Harder to used not because of poor API design, but because community support is lacking and features don't come out as fast as TensorFlow.
It has made our Data Science/ Machine Learning Courses easier to manage/ need less human input therefore allowing us to increase the cohort size for this degree
It has unified a lot of technologies reducing the load on our IT team
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.