Machine learning is the hottest thing in computing right now. It's easy to see why with the technology being used everywhere, from self-driving cars to law enforcement, to stock market prediction.

TensorFlow is Google's project based on machine learning and neural networks. Let's find out what it is, its uses, and how to learn to use it.

What Is TensorFlow?

It's impossible to fully explain what TensorFlow is without first understanding what machine learning is. Machine learning and neural networks already affect our lives in more ways than you'd think.

At its simplest, machine learning is the process of teaching computers how to analyze data and make informed decisions regarding it, without being directly programmed to do so. To achieve this, we train neural networks to perform specific tasks.

TensorFlow is Google's open source neural network library, developed by the Google Brain team for a wide range of uses. In essence, TensorFlow removes the need to create a neural network from scratch. Instead, you can train TensorFlow with your data-set and use the results however you wish.

So far, so abstract. What can you do with a neural network? It turns out, almost anything!

Notable TensorFlow Examples

Image Classification

Many beginner machine learning tutorials use image classification as an early example project to help with understanding. By feeding reference images into a neural network, it can learn to predict whether an image contains similar objects.

To see this process in action, take a look at Siraj Raval's 5 minute Darth Vader classifier.

This kind of computer-assisted sifting of data is incredibly powerful not only for locating wild Darth Vaders. TensorFlow is already in use in Biomedical image analysis.

Almost every field which relies on the analysis of large amounts of image data can benefit from the technology. As featured in the official TensorFlow introduction video, it is being used to streamline conservation efforts for the near-extinct Dugong.

Deep Photo Style Transfer

Image Credit: luanfujun @ github.com

As well as image classification, TensorFlow can be used to alter images dynamically. Deep Photo Style Transfer was put together by a group at Cornell University. The project takes an input image and a styling image before applying that style to the original image - with stunning results.

The examples use a mixture of automated and manually achieved image layering, so if you want to get hands on it might be worth brushing up on your Photoshop skills before delving into the library.

Magenta AI Music

We are no stranger to using computers to create beautiful works of art. The idea of computers exhibiting creativity in a way we find recognizable has long been a Sci-Fi dream. With neural network libraries like TensorFlow, it's getting closer than ever.

Magenta uses TensorFlow to create tools for musicians. Using deep learning, Magenta extends tools available to musicians to open up new kinds of sound blending, and even machine assisted improvisational call and response.

Magenta is also usable as a smart sequencer in its own right. The ability to use outside libraries is one of the many fantastic features of CodePen. Tero Parviainen used the magenta.js library to create his beautiful Latent Cycles pen.

By setting neural network generated improvised loops next to one another, Latent Cycles allows anyone to create unique and beautiful sounds without prior musical knowledge.

How to Learn TensorFlow

Machine learning is an incredibly dense subject. A good grasp of statistics, mathematics, programming and general data science are all central to understanding. That said, TensorFlow does make it easy to get hands-on experience even as a beginner. The official TensorFlow tutorial takes a step by step approach for setup and use.

Most TensorFlow projects use the Python programming language. If you are new to the language, there are a wealth of great places to learn Python. If you are already more familiar with JavaScript, TensorFlow has tutorial videos covering the TensorFlow.js library.

These tutorials, alongside Google's free machine learning course, are an invaluable resource, from the providers of the library.

Other TensorFlow Tutorials

For a fast, informative introduction to TensorFlow and image classifiers, Siraj Raval has an informative (and meme-heavy) 5-minute introduction.

This is one of many videos on Siraj's YouTube channel on the subject of machine learning. Between super fast-videos like this one, and long live streams taking a step by step approach, this is a great place to learn TensorFlow and machine learning in Python.

Focusing on JavaScript and Tensorflow.js, the Coding Train provide another full-scale approach:

Host Daniel Shiffman covers various use cases for TensorFlow, and his series on machine learning as a whole is one of the best freely available courses on the subject.

Beginner Project: Live Object Detection

This project uses live object recognition to control an automatic waste sorter. The hardware appears to be a Raspberry Pi alternative, though in theory any microcontroller could be used. The real work is being done using a mixture of OpenCV and TensorFlow.

The project from the video has no tutorial attached. Dat Tran's excellent OpenCV and TensorFlow article uses the same libraries, explaining each element clearly. As a simple small scale idea which uses the TensorFlow library, a project of this scale is the perfect way to get started.

Going Further With Machine Learning

TensorFlow is an incredibly powerful tool from arguably the internet's most important company. The decision to make it open source was a big deal, as it opens it up to all of us.

That said, machine learning is an incredibly dense subject. It is worth spending some time with machine learning online courses to make the best use of TensorFlow fully.