Hello, and welcome!
In this video, we will provide a brief overview of the structure and capabilities of the TensorFlow
library.
TensorFlow is an open source library developed by the Google Brain Team.
It's an extremely versatile library, but it was originally created for tasks that require
heavy numerical computations.
For this reason, TensorFlow was geared towards the problem of machine learning, and deep
neural networks.
Due to a C C++ backend, TensorFlow is able to run faster than pure Python code.
The last thing we'll mention here is that a TensorFlow application uses a structure
known as a data flow graph.
We'll cover this in more detail shortly.
TensorFlow offers several advantages for an application.
It provides both a Python and a C++ API.
But the Python API is more complete and it's generally easier to use.
TensorFlow also has great compilation times in comparison to the alternative deep learning
libraries.
And it supports CPUs, GPUs, and even distributed processing in a cluster.
TensorFlow's structure is based on the execution of a data flow graph.
A data flow graph has two basic units.
A node represents a mathematical operation, and an edge represents a multi-dimensional
array, known as a tensor.
So this high-level abstraction reveals how the data flows between operations.
The standard usage is to build a graph and then execute after the session is created,
by using the 'run' and 'eval' operations.
Since this would be difficult for interactive environments like IPython and Jupyter notebooks,
there's an option to create interactive sessions that run on demand.
Once the graph is built, an inner loop is written to drive computation.
Inputs are fed into nodes through variables or placeholders.
You can take a look at how that might work in the sample graph here.
In TensorFlow, a graph will only run computations after the creation of a session.
TensorFlow's flexible architecture allows you to deploy computation on one or more CPUs,
or GPUs, or in a desktop, server, or even a mobile device.
All of this can be done while only using a single API.
As we mentioned before, TensorFlow comes with an easy to use Python interface to build and
execute your computational graphs.
It's easy to play around and learn about machine learning using the Data Scientist Workbench,
or DSWB.
The point is that you don't need any special hardware.
You can scale up and develop models faster with different implementations.
So let's briefly touch on why TensorFlow is suited for deep learning applications.
TensorFlow has built-in support for deep learning and neural networks, so it's easy to assemble
a net, assign parameters, and run the training process.
It also has a collection of simple, trainable mathematical functions that are useful for
neural networks.
And any gradient-based machine learning algorithm will benefit from TensorFlow's auto-differentiation
and suite of first-rate optimizers.
Due to the large collection of flexible tools, TensorFlow is compatible with many variants
of machine learning.
As a quick overview, a neural network is a machine learning model inspired by the brain.
Data comes into an input layer, and flows across to an output layer.
The hidden layers in between are responsible for running calculations.
The simple neural network you see here is known as a Multi-layer perceptron.
By increasing the number of hidden layers, we move from a shallow neural network, to
a deep neural network.
Deep neural networks are capable of significantly more complex behavior than their shallow counterparts.
Each node, or neuron as it's called, processes input using an activation function.
There are many different functions like the binary step,the Hyperbolic Tangent, And the
logistic Function.
The choice of activation function has a big impact on the network's behavior.
TensorFlow provides a lot of flexibility because it gives you control over the network's structure
and the functions used for processing.
But TensorFlow can be used for more than just neural networks.
It can also be used to take a set of points and apply a linear regression.
In its most basic form, this is essentially a 'line of best fit'.
And if a line isn't suitable for your data,
You can use TensorFlow to build non-linear models as well.
If you need to build a model to perform classification, with TensorFlow, you can easily implement
logistic regression.
And these are just a few of the basic models that can be implemented with TensorFlow.
By now, you should have a basic understanding of TensorFlow's structure and its capabilities.
Thank you for watching this video.