Review: TensorFlow shines a light on deep learning

Google's open source framework for machine learning and neural networks is fast and flexible, rich in models, and easy to run on CPUs or GPUs

1 2 Page 2
Page 2 of 2

Most developers should start learning TensorFlow by checking out its code repository and model repository. The next step is to install TensorFlow and validate your installation, while reading the introductory materials and going through at least one MNIST tutorial, which shows you ways to recognize handwritten characters. Then by all means go through the other tutorials, which show you the basic mechanics of TensorFlow and tf.contrib.learn, a high-level API for TensorFlow. Then, depending on your interests, you can dive into image processing, language and sequence processing, and non-machine-learning applications (Mandelbrot set and a PDE simulation).

Then you can work through all the how-to articles, which will get you to the point where you should be able to understand the contributed models in the “model zoo” and the TensorFlow articles in the Google Research blog. Finally, you can start writing your own TensorFlow Python code, using the API for reference, and copying code freely from the various samples and models. You might find that working interactively in Jupyter notebooks helps, or you might prefer working in a programming editor or IDE with good Python language support.

If at any time you discover that you don’t quite have the background for the TensorFlow material, there are a number of free online courses on machine learning and related topics, five of which are discussed in an article by my colleague Serdar Yegulalp.

After living and breathing TensorFlow for about a week, I’m almost ready to write my own TensorFlow code -- although I’ll probably adapt someone else’s model, rather than start from scratch. TensorFlow is not an easy nut to crack, requiring knowledge of statistics, optimization, machine learning, and neural networks, as well as fluency in Python, all before you even start learning the framework. The architecture of TensorFlow is quite flexible once you grasp it, though I freely admit that I didn’t quite get it for the first couple of days.

I’ve said elsewhere that TensorFlow ranks about 9 out of 10 on the software geekiness scale. I still think that’s true, but that doesn’t mean it’s out of reach. You don’t need to be a grad student in machine learning to learn and use TensorFlow, although I’m sure that would help. There’s plenty of documentation, and it’s pretty good, if perhaps more than you’ll want to go through right away, and arranged in a manner that requires you to jump back and forth among different articles.

I rate TensorFlow excellent for its wide selection of algorithms and models. If you are a machine learning researcher, you’ll appreciate the smorgasbord. If you simply want to solve a practical machine learning problem, you should be able to find at least one model you can use or adapt.

TensorFlow seems to perform as well as anything out there for neural network and deep learning training, despite an early benchmark that falsely indicated otherwise because of differing GPU libraries. If you need to do a lot of machine learning on large data sets, however, you’ll want to use computing resources with GPUs or TPUs, and perhaps a server or cluster.

If you’re serious about doing machine learning programming and you like to write Python, TensorFlow is a very good choice, although it has several competitors, including Caffe, CNTK, Theano, and Torch. On the other hand, if you simply need to process general text, speech, or images, or to perform language translations, the Google, HPE, and Microsoft clouds all offer applied machine learning services that may already be trained to do what you need.

At a Glance
  • TensorFlow is a flexible and scalable open source framework for machine learning and neural networks.

    Pros

    • Wide variety of models and algorithms
    • Excellent performance on hardware with GPUs or TPUs
    • Excellent support for Python
    • Good documentation
    • Good software for displaying graphs

    Cons

    • Difficult to learn
    • Bare-bones support for C++
    • No support for R or Lua

Copyright © 2016 IDG Communications, Inc.

1 2 Page 2
Page 2 of 2