TensorFlow and Keras - Statinfer...Contents •Deep Learning frameworks •What is TensorFlow •Key...

65
TensorFlow and Keras statinfer.com

Transcript of TensorFlow and Keras - Statinfer...Contents •Deep Learning frameworks •What is TensorFlow •Key...

Page 1: TensorFlow and Keras - Statinfer...Contents •Deep Learning frameworks •What is TensorFlow •Key terms in TensorFlow •Working with TensorFlow •Regression Model building •MNIST

TensorFlow and Kerasstatinfer.com

Page 2: TensorFlow and Keras - Statinfer...Contents •Deep Learning frameworks •What is TensorFlow •Key terms in TensorFlow •Working with TensorFlow •Regression Model building •MNIST

Contents

•Deep Learning frameworks

•What is TensorFlow

•Key terms in TensorFlow

•Working with TensorFlow

•Regression Model building

•MNIST on TensorFlow

•Keras Introduction

•Keras Advantages

•Working with Keras

•MNIST on Keras

statinfer.com

2

Page 3: TensorFlow and Keras - Statinfer...Contents •Deep Learning frameworks •What is TensorFlow •Key terms in TensorFlow •Working with TensorFlow •Regression Model building •MNIST

Limitations of Machine Learning tools

•Python, R and SAS work really well for solving the predictive modelling

and machine learning problems

•The libraries like “sklearn” are sufficient for building regression

models, trees, random forest and bosting models.

•But these tools have limited deep neural networks libraries

•What are the tools/frameworks for deep learning algorithms?

statinfer.com

3

Page 4: TensorFlow and Keras - Statinfer...Contents •Deep Learning frameworks •What is TensorFlow •Key terms in TensorFlow •Working with TensorFlow •Regression Model building •MNIST

Deep Learning Frameworks

•TensorFlow(by Google)

•Torch(by Facebook)

•Caffe(by UC Berkeley)

•Theano(Old version of TensorFlow)

•MxNet(by Amazon)

•CNTK(by Microsoft)

•Paddle(by Baidu)

statinfer.com

4

Page 5: TensorFlow and Keras - Statinfer...Contents •Deep Learning frameworks •What is TensorFlow •Key terms in TensorFlow •Working with TensorFlow •Regression Model building •MNIST

TensorFlow

statinfer.com

5

• TensorFlow was developed by the Google Brain team for internal use.

• It was released under the Apache 2.0 open source license on November

9, 2015

Page 6: TensorFlow and Keras - Statinfer...Contents •Deep Learning frameworks •What is TensorFlow •Key terms in TensorFlow •Working with TensorFlow •Regression Model building •MNIST

TensorFlow

•Most popular among all Deep learning

frameworks.

•TensorFlow works really well with matrix

computations - All the deep learning

algorithms are highly calculation

intensive.

•Scalable to multi-CPUs and even GPUs

•Can handle almost all type of deep

networks, be it ANN or CNN or RNNs

statinfer.com

6

Page 7: TensorFlow and Keras - Statinfer...Contents •Deep Learning frameworks •What is TensorFlow •Key terms in TensorFlow •Working with TensorFlow •Regression Model building •MNIST

Working with TensorFlow

•Has Python API and python is very easy install and to work on.

•We can use numpy to build all the models from scratch. But

TensorFlow does it better by providing function to do it easily.

•TensorFlow has one of the best documentation and great community

support as of now.

statinfer.com

7

Page 8: TensorFlow and Keras - Statinfer...Contents •Deep Learning frameworks •What is TensorFlow •Key terms in TensorFlow •Working with TensorFlow •Regression Model building •MNIST

Some Key Terms in TensorFlow

•TensorFlow represents data as tensors

•Represents the calculations as computational graphs

•Place holders are created and later filled with data

•Sessions will be used for executing graphs.

statinfer.com

8

Page 9: TensorFlow and Keras - Statinfer...Contents •Deep Learning frameworks •What is TensorFlow •Key terms in TensorFlow •Working with TensorFlow •Regression Model building •MNIST

Some key terms

•Tensors

•Dimensions

•Computational graphs

•Nodes and Edges

•Placeholders

•feed_dict

•Session

statinfer.com

9

Page 10: TensorFlow and Keras - Statinfer...Contents •Deep Learning frameworks •What is TensorFlow •Key terms in TensorFlow •Working with TensorFlow •Regression Model building •MNIST

Tensor

statinfer.com

A vector/array is a

collection of

elements (scalars) A matrix is a two

dimensional vector

A Tensor is a multi-

dimensional vector.

Tensor means data

Page 11: TensorFlow and Keras - Statinfer...Contents •Deep Learning frameworks •What is TensorFlow •Key terms in TensorFlow •Working with TensorFlow •Regression Model building •MNIST

Tensor

statinfer.com

11

400

350

450

600

980

200

A vector indicating the

product price(say smart

phones)

A tensor of dimension [6]

400 4

350 5

450 3

600 4

980 5

200 2

A matrix indicating the

product price and rating

A tensor of dimension [6,2]

400 4

350 5

450 3

600 4

980 5

200 2

A tensor indicating the product

price and rating for last three

years

A tensor of dimension [6,2,3]

400 4

350 5

450 3

600 4

980 5

200 2

A tensor indicating the product

price and rating for last three

years in two countries

A tensor of dimension [6,2,3,2]

Page 12: TensorFlow and Keras - Statinfer...Contents •Deep Learning frameworks •What is TensorFlow •Key terms in TensorFlow •Working with TensorFlow •Regression Model building •MNIST

Tensor for images

•A colour image is represented as a three dimensional tensor

•[Width, Height, Colour]

•The colour component depth 3, Red, Green and Blue

statinfer.com

12

-1 -1 -1 -1 -1 -1 -1 -1 0.9 -0 -1 -1 -1 -1 -1 -1

-1 -1 -1 -1 -1 -1 -1 0.3 1 0.3 -1 -1 -1 -1 -1 -1

-1 -1 -1 -1 -1 -1 -0 1 1 -1 -1 -1 -1 -1 -1 -1

-1 -1 -1 -1 -1 -1 0.8 1 0.6 -1 -1 -1 -1 -1 -1 -1

-1 -1 -1 -1 -1 0.5 1 0.8 -1 -1 -1 -1 -1 -1 -1 -1

-1 -1 -1 -1 0.1 1 0.9 -0 -1 -1 -1 -1 -1 -1 -1 -1

-1 -1 -1 -0 1 1 -0 -1 -1 -1 -1 -1 -1 -1 -1 -1

-1 -1 -1 0.9 1 0.3 -1 -1 -1 -1 0.5 1 0.9 0.1 -1 -1

-1 -1 0.3 1 0.9 -1 -1 -1 0.1 1 1 1 1 1 -1 -1

-1 -1 0.8 1 0.3 -1 -1 0.4 1 0.7 -0 -0 1 1 -1 -1

-1 -1 1 1 0.1 -1 0.1 1 0.3 -1 -1 -0 1 0.6 -1 -1

-1 -1 1 1 0.8 0.3 1 0.7 -1 -1 -1 0.5 1 0 -1 -1

-1 -1 0.8 1 1 1 1 0.5 0.2 0.8 0.8 1 0.9 -1 -1 -1

-1 -1 -0 0.8 1 1 1 1 1 1 1 1 0.1 -1 -1 -1

-1 -1 -1 -0 0.8 1 1 1 1 1 1 0.2 -1 -1 -1 -1

-1 -1 -1 -1 -1 -0 0.3 0.8 1 0.5 -0 -1 -1 -1 -1 -1

-1 -1 -1 -1 -1 -1 -1 -1 0.9 -0 -1 -1 -1 -1 -1 -1

-1 -1 -1 -1 -1 -1 -1 0.3 1 0.3 -1 -1 -1 -1 -1 -1

-1 -1 -1 -1 -1 -1 -0 1 1 -1 -1 -1 -1 -1 -1 -1

-1 -1 -1 -1 -1 -1 0.8 1 0.6 -1 -1 -1 -1 -1 -1 -1

-1 -1 -1 -1 -1 0.5 1 0.8 -1 -1 -1 -1 -1 -1 -1 -1

-1 -1 -1 -1 0.1 1 0.9 -0 -1 -1 -1 -1 -1 -1 -1 -1

-1 -1 -1 -0 1 1 -0 -1 -1 -1 -1 -1 -1 -1 -1 -1

-1 -1 -1 0.9 1 0.3 -1 -1 -1 -1 0.5 1 0.9 0.1 -1 -1

-1 -1 0.3 1 0.9 -1 -1 -1 0.1 1 1 1 1 1 -1 -1

-1 -1 0.8 1 0.3 -1 -1 0.4 1 0.7 -0 -0 1 1 -1 -1

-1 -1 1 1 0.1 -1 0.1 1 0.3 -1 -1 -0 1 0.6 -1 -1

-1 -1 1 1 0.8 0.3 1 0.7 -1 -1 -1 0.5 1 0 -1 -1

-1 -1 0.8 1 1 1 1 0.5 0.2 0.8 0.8 1 0.9 -1 -1 -1

-1 -1 -0 0.8 1 1 1 1 1 1 1 1 0.1 -1 -1 -1

-1 -1 -1 -0 0.8 1 1 1 1 1 1 0.2 -1 -1 -1 -1

-1 -1 -1 -1 -1 -0 0.3 0.8 1 0.5 -0 -1 -1 -1 -1 -1

-1 -1 -1 -1 -1 -1 -1 -1 0.9 -0 -1 -1 -1 -1 -1 -1

-1 -1 -1 -1 -1 -1 -1 0.3 1 0.3 -1 -1 -1 -1 -1 -1

-1 -1 -1 -1 -1 -1 -0 1 1 -1 -1 -1 -1 -1 -1 -1

-1 -1 -1 -1 -1 -1 0.8 1 0.6 -1 -1 -1 -1 -1 -1 -1

-1 -1 -1 -1 -1 0.5 1 0.8 -1 -1 -1 -1 -1 -1 -1 -1

-1 -1 -1 -1 0.1 1 0.9 -0 -1 -1 -1 -1 -1 -1 -1 -1

-1 -1 -1 -0 1 1 -0 -1 -1 -1 -1 -1 -1 -1 -1 -1

-1 -1 -1 0.9 1 0.3 -1 -1 -1 -1 0.5 1 0.9 0.1 -1 -1

-1 -1 0.3 1 0.9 -1 -1 -1 0.1 1 1 1 1 1 -1 -1

-1 -1 0.8 1 0.3 -1 -1 0.4 1 0.7 -0 -0 1 1 -1 -1

-1 -1 1 1 0.1 -1 0.1 1 0.3 -1 -1 -0 1 0.6 -1 -1

-1 -1 1 1 0.8 0.3 1 0.7 -1 -1 -1 0.5 1 0 -1 -1

-1 -1 0.8 1 1 1 1 0.5 0.2 0.8 0.8 1 0.9 -1 -1 -1

-1 -1 -0 0.8 1 1 1 1 1 1 1 1 0.1 -1 -1 -1

-1 -1 -1 -0 0.8 1 1 1 1 1 1 0.2 -1 -1 -1 -1

-1 -1 -1 -1 -1 -0 0.3 0.8 1 0.5 -0 -1 -1 -1 -1 -1

16X16 pixels colour image

A tensor with dimensions

[16,16,3]

Page 13: TensorFlow and Keras - Statinfer...Contents •Deep Learning frameworks •What is TensorFlow •Key terms in TensorFlow •Working with TensorFlow •Regression Model building •MNIST

Computational graphs

•Inside TensorFlow computations are represented using computational

graphs

•You can call it as data flow graph. As sequence of operations on

tensors(data)

•It has nodes and edges

statinfer.com

13

y

X

𝒛 = 𝒙 ∗ 𝒚

y

X

𝒛 = 𝒙 + 𝒚

Page 14: TensorFlow and Keras - Statinfer...Contents •Deep Learning frameworks •What is TensorFlow •Key terms in TensorFlow •Working with TensorFlow •Regression Model building •MNIST

Computation Graphs-Nodes

•Nodes

1. Data and Operations

2. Operations which have any number

of inputs and outputs.

3. Variables/Tensors are also

represented by nodes

statinfer.com

14

W

X

𝑴𝒂𝒕𝑴𝒖𝒍

b

𝑨𝒅𝒅

Nodes

𝑺𝒊𝒈𝒎𝒐𝒊𝒅

Page 15: TensorFlow and Keras - Statinfer...Contents •Deep Learning frameworks •What is TensorFlow •Key terms in TensorFlow •Working with TensorFlow •Regression Model building •MNIST

Computation Graphs- Edges

•Edges :

•Data flow direction

• Flow of tensors between nodes

statinfer.com

15

W

X

𝑴𝒂𝒕𝑴𝒖𝒍

b

𝑨𝒅𝒅

Edges

𝑺𝒊𝒈𝒎𝒐𝒊𝒅

Page 16: TensorFlow and Keras - Statinfer...Contents •Deep Learning frameworks •What is TensorFlow •Key terms in TensorFlow •Working with TensorFlow •Regression Model building •MNIST

Computation Graphs

16

w

x

x*w

b

h=x*w+b Sigm(h)

•Computational graphs are particularly useful if the operations are complex

•TensorFlow computations define a computation graph that has no numerical

value until it is evaluated!

Page 17: TensorFlow and Keras - Statinfer...Contents •Deep Learning frameworks •What is TensorFlow •Key terms in TensorFlow •Working with TensorFlow •Regression Model building •MNIST

Why Computation Graphs?

•Saves time by independently running the subgraphs that contribute to

the final computation

•While training deep learning models, partial derivatives and chain rule

applications are handled efficiently using these computational graphs.

•Break computation into small, differential pieces to facilitates auto-

differentiation.

•Facilitate distributed computation, spread the work across multiple

CPUs, GPUs, or devices.

statinfer.com

17

Page 18: TensorFlow and Keras - Statinfer...Contents •Deep Learning frameworks •What is TensorFlow •Key terms in TensorFlow •Working with TensorFlow •Regression Model building •MNIST

Programming in TensorFlow

•Express the overall task as a computational graph

•A graph no numerical value until it is executed.

•Execute the graph along with the data in a session

•What is a session?

statinfer.com

18

Building the Graph as an

abstract

Running the graph in a

Session

Page 19: TensorFlow and Keras - Statinfer...Contents •Deep Learning frameworks •What is TensorFlow •Key terms in TensorFlow •Working with TensorFlow •Regression Model building •MNIST

Session

•A session is used for launching the computational graph

•Session feeds Data into Graph

•A Session object summarizes the environment in which the

data is fed into the graph

•Graph: Abstract without Data

•Data: Input and Labels.

•Session: Launch the graph, feed the data to proceed with the

calculations

statinfer.com

19Launch the graph in a session

Page 20: TensorFlow and Keras - Statinfer...Contents •Deep Learning frameworks •What is TensorFlow •Key terms in TensorFlow •Working with TensorFlow •Regression Model building •MNIST

Code: Programming in TensorFlow

statinfer.com

20

•We need to run it as a whole using something called session.

No calculations are

running, only an

abstract of operation

was created

•TensorFlow does NOT execute any computation until the session is

created and the run function is applied. - What does this mean?

•This below code will not return any computations.

Page 21: TensorFlow and Keras - Statinfer...Contents •Deep Learning frameworks •What is TensorFlow •Key terms in TensorFlow •Working with TensorFlow •Regression Model building •MNIST

Code : Programming in TensorFlow

statinfer.com

21

•We need to run our abstract graph by creating a session running it and

then closing it.

We are able to get the

solution after launching

graph(c) in a session

Page 22: TensorFlow and Keras - Statinfer...Contents •Deep Learning frameworks •What is TensorFlow •Key terms in TensorFlow •Working with TensorFlow •Regression Model building •MNIST

Code Programming in TensorFlow

statinfer.com

22

Printing object through

session gives calculated

value of the object

Just printing gives

abstract/size/type of

object

Page 23: TensorFlow and Keras - Statinfer...Contents •Deep Learning frameworks •What is TensorFlow •Key terms in TensorFlow •Working with TensorFlow •Regression Model building •MNIST

Variables

•Constructs that allow us to change stored value and work as trainable

parameters.

•To declare a variable, we create an instance of the class tf.Variable()

with the type and initial value.

•We have to initialize variables before using them. Else we’ll run

into FailedPreconditionError: Attempting to use uninitialized value

tensor

statinfer.com

23

Page 24: TensorFlow and Keras - Statinfer...Contents •Deep Learning frameworks •What is TensorFlow •Key terms in TensorFlow •Working with TensorFlow •Regression Model building •MNIST

Variables : Defining, Initializing and eval

•Define using tf.Variable()

•Initialize using .initializer

•Most practices way: initializing all variables in one go using:

• tf.global_variables_initializer()

•Get the value using .eval() in a session.

statinfer.com

24

Different Parameters

available while

declaring Variable

Constructing and

Initializing a

particular Variable

Page 25: TensorFlow and Keras - Statinfer...Contents •Deep Learning frameworks •What is TensorFlow •Key terms in TensorFlow •Working with TensorFlow •Regression Model building •MNIST

Code: Programming in TF: Variables

statinfer.com

25

Declaring different variables and

using .eval() functions to get the

required output

Declaring a variable

Variable Global

initialization

Page 26: TensorFlow and Keras - Statinfer...Contents •Deep Learning frameworks •What is TensorFlow •Key terms in TensorFlow •Working with TensorFlow •Regression Model building •MNIST

Place holders: feed_dict

•How do we feed external data into computational graphs?

•Create a graph with “Place holders” and fill the data through these

place holders

•Need to use a feed_dict that will map the place holders to the data.

•In simple terms feed_dict fills the data in the place holders

•feed_dict can feed data using lists, arrays, matrices etc.,

statinfer.com

26

Page 27: TensorFlow and Keras - Statinfer...Contents •Deep Learning frameworks •What is TensorFlow •Key terms in TensorFlow •Working with TensorFlow •Regression Model building •MNIST

Code: Place holders

statinfer.com

27

Defining placeholders

Graph

Feeding the values

into the placeholder

Page 28: TensorFlow and Keras - Statinfer...Contents •Deep Learning frameworks •What is TensorFlow •Key terms in TensorFlow •Working with TensorFlow •Regression Model building •MNIST

Place holders

statinfer.com

28

Defining a

placeholder with

dimensions

Page 29: TensorFlow and Keras - Statinfer...Contents •Deep Learning frameworks •What is TensorFlow •Key terms in TensorFlow •Working with TensorFlow •Regression Model building •MNIST

Model building on TensorFlow

•Create place holders for X and Y tensors

•Take a note of the model. Write model equation Y=sig(X*W + b) or

Y=X*W+b

•Initialize the model parameters W

•Define loss function(cost) - C

•Optimise the cost function to find the best parameter estimates

statinfer.com

29

Page 30: TensorFlow and Keras - Statinfer...Contents •Deep Learning frameworks •What is TensorFlow •Key terms in TensorFlow •Working with TensorFlow •Regression Model building •MNIST

Graph

statinfer.com

30

Model

C

O

S

T

Optimizer Error

Placeholder

Page 31: TensorFlow and Keras - Statinfer...Contents •Deep Learning frameworks •What is TensorFlow •Key terms in TensorFlow •Working with TensorFlow •Regression Model building •MNIST

Graph

statinfer.com

31

Model

C

O

S

T

Optimizer

Placeholder

Error

To introduce

input examples

Calculating the error in

model

Operations on variables to make predictions

Way to optimize variables to

minimize the error

Place holder to

introduce labels

Page 32: TensorFlow and Keras - Statinfer...Contents •Deep Learning frameworks •What is TensorFlow •Key terms in TensorFlow •Working with TensorFlow •Regression Model building •MNIST

LAB: Linear Regression on TensorFlow

•Use code to generate the data for x and y.

•Build a regression model in TensorFlow to find W

•Verify the weight with the original data

statinfer.com

32

Page 33: TensorFlow and Keras - Statinfer...Contents •Deep Learning frameworks •What is TensorFlow •Key terms in TensorFlow •Working with TensorFlow •Regression Model building •MNIST

Code: Linear Regression on TensorFlow

statinfer.com

33

Randomly generating

our X and y

Page 34: TensorFlow and Keras - Statinfer...Contents •Deep Learning frameworks •What is TensorFlow •Key terms in TensorFlow •Working with TensorFlow •Regression Model building •MNIST

Code: Linear Regression on TensorFlow

statinfer.com

34

Defining a

placeholder with

dimensions

Defining the model

with initial weights,

bias and output

Defining cost function

Choosing optimizer

function with learning

rate

Page 35: TensorFlow and Keras - Statinfer...Contents •Deep Learning frameworks •What is TensorFlow •Key terms in TensorFlow •Working with TensorFlow •Regression Model building •MNIST

Code: Linear Regression on TensorFlow

statinfer.com

35

•Running our graph as session Initializing all the

variables in

computation graph

Range of epochs

Feeding the data into

X, y placeholders

Page 36: TensorFlow and Keras - Statinfer...Contents •Deep Learning frameworks •What is TensorFlow •Key terms in TensorFlow •Working with TensorFlow •Regression Model building •MNIST

Code: Linear Regression on TensorFlow

statinfer.com

36

Plot the line fit every

100 epoch to visualize

the training

Epoch :0 Epoch :100 Epoch :200

Epoch :300 Epoch :400 Epoch :500

Page 37: TensorFlow and Keras - Statinfer...Contents •Deep Learning frameworks •What is TensorFlow •Key terms in TensorFlow •Working with TensorFlow •Regression Model building •MNIST

LAB: Simple ANN Model

•Data:

•Our model function:

ℎ = 𝑆𝑖𝑔𝑚𝑜𝑖𝑑(𝑊𝑥 + 𝑏)

•The cost function:

𝐽(𝑊, 𝑏) =1

𝑁

𝑖=1

𝑁

(𝑦𝑖−ℎ)2

•Optimizer for back propagation

statinfer.com

37

Page 38: TensorFlow and Keras - Statinfer...Contents •Deep Learning frameworks •What is TensorFlow •Key terms in TensorFlow •Working with TensorFlow •Regression Model building •MNIST

Graph

statinfer.com

38

Model

C

O

S

T

Optimizer

Placeholder

Error

To introduce

input examples

and their labels

Calculating the error in

model

Operations on variables to make predictions

Way to optimize variables to

minimize the error

Place holder to

introduce labels

1

23

Page 39: TensorFlow and Keras - Statinfer...Contents •Deep Learning frameworks •What is TensorFlow •Key terms in TensorFlow •Working with TensorFlow •Regression Model building •MNIST

Lab: ANN Model– Single Perceptron

•Generate dummy x and y data

•Define our Model as Computation Graph

•Place holders for X and y

•W, b variables

•Model output function

•Cost function

•Optimizer

•Run the graph as session, feeding data into placeholders

statinfer.com

39

Page 40: TensorFlow and Keras - Statinfer...Contents •Deep Learning frameworks •What is TensorFlow •Key terms in TensorFlow •Working with TensorFlow •Regression Model building •MNIST

Code: ANN Model– Single Perceptron

statinfer.com

40

Randomly generating

our X and y

Page 41: TensorFlow and Keras - Statinfer...Contents •Deep Learning frameworks •What is TensorFlow •Key terms in TensorFlow •Working with TensorFlow •Regression Model building •MNIST

Code: ANN Model– Single Perceptron

statinfer.com

41

Defining a

placeholder with

dimentions

Defining initial

weights and bias

Defining cost function

Choosing optimizer

function with learning

rate

Model function passed

through Sigmoid(Non-

Linearity)

Page 42: TensorFlow and Keras - Statinfer...Contents •Deep Learning frameworks •What is TensorFlow •Key terms in TensorFlow •Working with TensorFlow •Regression Model building •MNIST

Code: ANN Model– Single Perceptron

statinfer.com

42

Initializing all the

variables in

computation graph

Range of epochs

Feeding the data into

X, y placeholders

Page 43: TensorFlow and Keras - Statinfer...Contents •Deep Learning frameworks •What is TensorFlow •Key terms in TensorFlow •Working with TensorFlow •Regression Model building •MNIST

LAB: MNIST on TensorFlowExample of ANN on MNIST data

Page 44: TensorFlow and Keras - Statinfer...Contents •Deep Learning frameworks •What is TensorFlow •Key terms in TensorFlow •Working with TensorFlow •Regression Model building •MNIST

LAB: MNIST on TensorFlow

•Importing the MNIST data, using existing TensorFlow APIs

statinfer.com

44

Page 45: TensorFlow and Keras - Statinfer...Contents •Deep Learning frameworks •What is TensorFlow •Key terms in TensorFlow •Working with TensorFlow •Regression Model building •MNIST

LAB: MNIST on TensorFlow

•Basic observation on the imported MNIST data

statinfer.com

45

Page 46: TensorFlow and Keras - Statinfer...Contents •Deep Learning frameworks •What is TensorFlow •Key terms in TensorFlow •Working with TensorFlow •Regression Model building •MNIST

LAB: MNIST on TensorFlow

•Converting a few observations from numerical data into images

statinfer.com

46

Page 47: TensorFlow and Keras - Statinfer...Contents •Deep Learning frameworks •What is TensorFlow •Key terms in TensorFlow •Working with TensorFlow •Regression Model building •MNIST

LAB: MNIST on TensorFlow

• Writing our basic computation graph.

statinfer.com

47

Page 48: TensorFlow and Keras - Statinfer...Contents •Deep Learning frameworks •What is TensorFlow •Key terms in TensorFlow •Working with TensorFlow •Regression Model building •MNIST

Code: MNIST on TensorFlow

statinfer.com

48

•Running our computation graph into a session

We were able to

achieve 91% accuracy

within a few seconds

Page 49: TensorFlow and Keras - Statinfer...Contents •Deep Learning frameworks •What is TensorFlow •Key terms in TensorFlow •Working with TensorFlow •Regression Model building •MNIST

TensorFlow Advantages

•Computational graphs make complex deep learning

computations easy

•Very fast compared to other frameworks

•Visualizations - Tensor Board

•GPU for faster computations

statinfer.com

49

•Lot of low level coding, may take some

time to get familiarity.

Page 50: TensorFlow and Keras - Statinfer...Contents •Deep Learning frameworks •What is TensorFlow •Key terms in TensorFlow •Working with TensorFlow •Regression Model building •MNIST

Keras: TensorFlow made easy!!!

•Wrapper

•Keras is a wrapper on top of TensorFlow.

•High level API written in Python

•Easy

• Less lines of code.

•Easy to learn and implement deep learning models

•Best

•Wide ranging options

•Probably the best wrapper on top of TensorFlow

statinfer.com

50

Page 51: TensorFlow and Keras - Statinfer...Contents •Deep Learning frameworks •What is TensorFlow •Key terms in TensorFlow •Working with TensorFlow •Regression Model building •MNIST

Keras: TensorFlow made easy!!!

•Non-coders

• Simple straight forward syntax

•Provides detailed model summary statistics

•Non-coders can start deep learning models with Keras

•Documentation

•Good documentation on keras.io

•Good support from community and userbase

statinfer.com

51

Page 52: TensorFlow and Keras - Statinfer...Contents •Deep Learning frameworks •What is TensorFlow •Key terms in TensorFlow •Working with TensorFlow •Regression Model building •MNIST

Keras

statinfer.com

52

Page 53: TensorFlow and Keras - Statinfer...Contents •Deep Learning frameworks •What is TensorFlow •Key terms in TensorFlow •Working with TensorFlow •Regression Model building •MNIST

Major steps in model building on Keras

1. Prepare your data.

2. Model Configuration

•Add input layer to your model object

•Add the hidden layers

•Add the output layer

3. Compile the model object

4. Finally train the model

What are Layers?

statinfer.com

53

Page 54: TensorFlow and Keras - Statinfer...Contents •Deep Learning frameworks •What is TensorFlow •Key terms in TensorFlow •Working with TensorFlow •Regression Model building •MNIST

Sequence of Layers in the model

•Models building is done using sequence of layers

•The sequential model is a linear stack of layers.

•The first layer in the stack is “Input Layer” - Model receives the

information on input shape

•The last layer is “Output Layer”. The model gets information on

labels.

•We can add all the “model layers” in between. The model will prepare

the weight parameters

•Lets see an example

statinfer.com

54

Page 55: TensorFlow and Keras - Statinfer...Contents •Deep Learning frameworks •What is TensorFlow •Key terms in TensorFlow •Working with TensorFlow •Regression Model building •MNIST

LAB: MNIST on KerasExample of ANN on MNIST data using Tensorflow-Keras

Page 56: TensorFlow and Keras - Statinfer...Contents •Deep Learning frameworks •What is TensorFlow •Key terms in TensorFlow •Working with TensorFlow •Regression Model building •MNIST

Code: MNIST on Keras

•Importing our Keras dependencies

statinfer.com

56

Page 57: TensorFlow and Keras - Statinfer...Contents •Deep Learning frameworks •What is TensorFlow •Key terms in TensorFlow •Working with TensorFlow •Regression Model building •MNIST

Code: MNIST on Keras

•Keras’s default MNIST data is in different format, make it a bit friendly.

statinfer.com

57

Class vector needs to

be converted into

binary class matrices

Scaling the pixel

values between 0 and

1

Page 58: TensorFlow and Keras - Statinfer...Contents •Deep Learning frameworks •What is TensorFlow •Key terms in TensorFlow •Working with TensorFlow •Regression Model building •MNIST

Code: MNIST on Keras

•Having a look at images using matplotlib

statinfer.com

58

Page 59: TensorFlow and Keras - Statinfer...Contents •Deep Learning frameworks •What is TensorFlow •Key terms in TensorFlow •Working with TensorFlow •Regression Model building •MNIST

Code: MNIST on Keras•Defining our model and model parameters

statinfer.com

59

Basic model parameters

Keras model

blocktype

Adding our first dense

layer

Adding activation

Layer

Page 60: TensorFlow and Keras - Statinfer...Contents •Deep Learning frameworks •What is TensorFlow •Key terms in TensorFlow •Working with TensorFlow •Regression Model building •MNIST

Code: MNIST on Keras

•Understanding the shape of our layers

statinfer.com

60

512(nodes) X

784(Input Shape)

=401408

512(Input shape) X

10(Nodes)+10(Bias)

=5130

Page 61: TensorFlow and Keras - Statinfer...Contents •Deep Learning frameworks •What is TensorFlow •Key terms in TensorFlow •Working with TensorFlow •Regression Model building •MNIST

Code: MNIST on Keras

•Compiling and running our model

statinfer.com

61

Compiling by giving:

loss function,

optimizer and

validation matric

Actual Training or

running by feeding in

the data

Page 62: TensorFlow and Keras - Statinfer...Contents •Deep Learning frameworks •What is TensorFlow •Key terms in TensorFlow •Working with TensorFlow •Regression Model building •MNIST

Code: MNIST on Keras•Final Scores and weights of model

statinfer.com

62

Page 63: TensorFlow and Keras - Statinfer...Contents •Deep Learning frameworks •What is TensorFlow •Key terms in TensorFlow •Working with TensorFlow •Regression Model building •MNIST

Code Comparison –Keras vs TensorFlow

statinfer.com

63

• Keras is not just about less lines of

code.

• Keras syntax is also simple

MNIST on

TensorFlow

MNIST on Keras

Page 64: TensorFlow and Keras - Statinfer...Contents •Deep Learning frameworks •What is TensorFlow •Key terms in TensorFlow •Working with TensorFlow •Regression Model building •MNIST

Other Advantages of Keras

•Biggest advantage is: Easy and fast

• Friendliness

•Modularity

•Extensibility

•Keras provides easy pipelining of our model.

•Very less and tidy code.

•Pre-existing APIs make our work quite easy.

statinfer.com

64

Page 65: TensorFlow and Keras - Statinfer...Contents •Deep Learning frameworks •What is TensorFlow •Key terms in TensorFlow •Working with TensorFlow •Regression Model building •MNIST

Conclusion

•The Deep Learning algorithms are really calculation intensive

•There are many deep learning frameworks

•TensorFlow is one such framework and Keras is a high level API on top

of it

•Torch is the next best option.

statinfer.com

65