Back

 Industry News Details

 
Which deep learning network is best for you? Posted on : May 04 - 2017

Open source deep learning neural networks are coming of age. There are several frameworks that are providing advanced machine learning and artificial intelligence (A.I.) capabilities over proprietary solutions. How do you determine which open source framework is best for you?

In “Big data – a road map for smarter data,” I describe a set of machine learning architectures that will provide advanced capabilities to include image, handwriting, video, and speech recognition, natural language processing and object recognition. There is no perfect deep learning network that will solve all your business problems. Hopefully, the below table with the accommodating descriptive outline will provide you insights towards the best fit for purpose framework for your business problem.

The below figure, Deep Learning Frameworks, summarizes most of the popular open source deep network repositories in GitHub. The ranking is based on the number of stars awarded by developers in GitHub. The numbers were compiled at the beginning of May of 2017.

TensorFlow

Google’s TensorFlow grew out of an earlier Google library called DistBelief V2, which is a proprietary deep net library developed as part of the Google Brain project. Some have described TensorFlow as re-architecting Theano from the ground up.

When Google open sourced TensorFlow, it gained a large developer following immediately. TensorFlow supports a broad set of capabilities such as image, handwriting and speech recognition, forecasting and natural language processing. TensorFlow is released under the Apache 2.0 open source license on November 9, 2015.

TensorFlow announced version 1.0 on February 15, 2017. This release is an accumulation of eight prior releases which addresses a lot of the incomplete core capabilities and performance issues that TensorFlow suffered from. Below is a list of  features that are contributing to TensorFlow success.

TensorFlow provides these tools:

  • TensorBoard is a very well designed visualization tool for network modeling and performance.
  • TensorFlow Serving makes it easy to deploy new algorithms and experiments, while keeping the same server architecture and APIs. TensorFlow Serving provides out-of-the-box integration with TensorFlow models, but can be easily extended to serve other types of models and data.

TensorFlow programming interfaces includes Python & C++. With the version 1.0 announcement, alpha releases of Java, GO, R, and Haskell API will be supported. Additionally, TensorFlow is supported in Google and Amazon Cloud Environment.

TensorFlow supports Windows 7, 10 & Server 2016 with the 0.12 release. Libraries can be compiled and optimized on ARM architecture because it uses the C++ Eigen library. This means that you can deploy your trained models on a variety of servers or mobile devices without having to implement a separate model decoder or load a Python interpreter.

TensorFlow supports fine grain network layers that allows users to build new complex layer types without implementing them in a low-level language. Subgraph execution allows you to introduce and retrieve the results of discretionary data on any edge of the graph. This is extremely helpful for debugging complicated computational graphs.

Distributed TensorFlow was introduced with version 0.8 allowing for model parallelism, which means that different portions of the model are trained on different devices in parallel.

The framework is being taught at Stanford University, Berkeley College, University of Toronto and Udacity, a free massive open online school as of March 2016.

TensorFlow downsides are:

  • Every computational flow in TensorFlow must be constructed as a static graph, and lacks symbolic loops. This makes some computations difficult.
  • There is no 3-D convolution, which is useful for video recognition.
  • Even with TensorFlow being 58x faster than its inception version (v0.5) it still lags on execution performance over its competitors.  View More