Jupyter Notebook is an open-source web application that allows users to create and share documents containing live code, equations, visualizations and narrative text. Uses include: data cleaning and transformation, numerical simulation, statistical modeling, data visualization, and machine learning. It supports over 40 programming languages, and notebooks can be shared with others using email, Dropbox, GitHub and the Jupyter Notebook Viewer. It is used with JupyterLab, a web-based IDE for…
N/A
TensorFlow
Score 7.9 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.
I've created a number of daisy chain notebooks for different workflows, and every time, I create my workflows with other users in mind. Jupiter Notebook makes it very easy for me to outline my thought process in as granular a way as I want without using innumerable small. inline comments.
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).
Need more Hotkeys for creating a beautiful notebook. Sometimes we need to download other plugins which messes [with] its default settings.
Not as powerful as IDE, which sometimes makes [the] job difficult and allows duplicate code as it get confusing when the number of lines increases. Need a feature where [an] error comes if duplicate code is found or [if a] developer tries the same function name.
Theano is perhaps a bit faster and eats up less memory than TensorFlow on a given GPU, perhaps due to element-wise ops. Tensorflow wins for multi-GPU and “compilation” time.
Jupyter is highly simplistic. It took me about 5 mins to install and create my first "hello world" without having to look for help. The UI has minimalist options and is quite intuitive for anyone to become a pro in no time. The lightweight nature makes it even more likeable.
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.
With Jupyter Notebook besides doing data analysis and performing complex visualizations you can also write machine learning algorithms with a long list of libraries that it supports. You can make better predictions, observations etc. with it which can help you achieve better business decisions and save cost to the company. It stacks up better as we know Python is more widely used than R in the industry and can be learnt easily. Unlike PyCharm jupyter notebooks can be used to make documentations and exported in a variety of formats.
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