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