### Deep Learning with Tensorflow

Tensorflow is a numeric computation framework open-sourced by Google. From a system’s perspective, Tensorflow’s distinguishing feature is the ability to parallelize and distribute computations over thousands of CPUs and GPUs, making it suitable for deployments on large clusters. From a developer’s perspective TensorFlow makes life easy: install TF on your laptop in secs, write and test your code there, then copy to server. The same code runs on your laptop or a massive cluster of thousands of nodes without modifications. Moreover, TF auto-differentiates all the functions it understands (infinite through composition) saving you hundreds of code lines and hours of debugging. All these are made possible by the simple principle of separating computation declaration from execution.

The course is an introduction to TF and computation graphs using TF’s Python API. Although introductory, the course covers a substantial breadth of TF’s concepts and tools with hands-on examples and exercises.

## Objectives

- Learn the basics of declarative computation (computation graphs).
- Learn how TF implements declarative computation.
- Learn how to implement basic neural networks for classification and regression tasks.

## Who Should Attend

Data engineers that need a tool for building distributed workflows of complex data transformations.

Data scientists that want to use neural networks for regression and classification tasks.

Technical managers involved in the evaluation of technologies and human resource skills related to analytics and big data.

## Prerequisites

- Basic knowledge of Python and the numpy package
- Basic understanding of what a regression and classification task is and what is training with examples.
- Have a laptop with Ubuntu 16.04 or windows 10 OS, at least 4GB RAM and 32GB disk storage

## Course Outline

**Tensor Basics**

The computational graph model – imperative vs declarative programming

Basic operations with tensors

Graph Inspection & Visualization with TensorBoard**Linear Algebra with TF**

Operations on sparse and dense matrices and vectors

Kronecker Products in TF

From matrices to tensors

Tensor tiling: The map Operator

Reductions on tensors

Auto-differentiation: TF’s distinguishing feature**Tensorflow I/O**

Feeding data with placeholders

Exporting results

Splitting and processing inputs with minibatches**Numerical optimization In TensorFlow**

Creating a symbolic objective function

Gradient computations: building a simple gradient-descent optimizer

Tweaking gradients: the compute_gradient and apply_gradient methods

Predefined TF optimizers: gradient descent, adagrad and adam optimizers

Predefined loss functions

Building a linear regression model with TF in 3 lines**Introduction to Neural Networks and deep learning**Fundamentals of Neural Nets

Stochastic gradient descent

The backpropagation algorithm

Building a neural network classifier

Learning embeddings of categorical variables