Introduction to Tensorflow with Daniel L Silver Ph

  • Slides: 14
Download presentation
Introduction to Tensorflow with Daniel L. Silver, Ph. D. Christian Frey, BBA April 11

Introduction to Tensorflow with Daniel L. Silver, Ph. D. Christian Frey, BBA April 11 -12, 2017 2020 -11 -26 Deep Learning Workshop 1

Introduction to Tensor. Flow Christian Frey and Dr. Danny Silver https: //docs. google. com/presentation/d/1

Introduction to Tensor. Flow Christian Frey and Dr. Danny Silver https: //docs. google. com/presentation/d/1 o. B_U_Jagx. WQd. QJl. LD 80 Xl. Nk 6 fuv 42 b. HV 0 hf. DAPGAbrc Jon Gauthier (Stanford NLP Group; interned with the Google Brain team this summer) 12 November 2015

What is Tensor. Flow? From the whitepaper: “Tensor. Flow is an interface for expressing

What is Tensor. Flow? From the whitepaper: “Tensor. Flow is an interface for expressing machine learning algorithms, and an implementation for executing such algorithms. ” • Symbolic ML dataflow framework that compiles to native / GPU code • offers a reduction in development time

What is Tensor. Flow – video • https: //www. youtube. com/watch? v=b. Ye. BL

What is Tensor. Flow – video • https: //www. youtube. com/watch? v=b. Ye. BL 92 v 99 Y 4

Who is Tensor. Flow?

Who is Tensor. Flow?

Programming model Big idea: Express a numeric computation as a graph. • Graph nodes

Programming model Big idea: Express a numeric computation as a graph. • Graph nodes are operations which have any number of inputs and outputs • Graph edges are tensors which flow between nodes

Programming model: NN feedforward

Programming model: NN feedforward

Programming model: NN feedforward Variables are stateful nodes which output their current value. (State

Programming model: NN feedforward Variables are stateful nodes which output their current value. (State is retained across multiple executions of a graph. ) (parameters, gradient stores, eligibility traces, …)

Programming model: NN feedforward Placeholders are nodes whose value is fed in at execution

Programming model: NN feedforward Placeholders are nodes whose value is fed in at execution time. (inputs, variable learning rates, …)

Programming model: NN feedforward Mathematical operations: Mat. Mul: Multiply two matrix values. Add: Add

Programming model: NN feedforward Mathematical operations: Mat. Mul: Multiply two matrix values. Add: Add elementwise (with broadcasting). Re. LU: Activate with elementwise rectified linear function.

import tensorflow as tf In code, please! 1. Create model weights, including initialization a.

import tensorflow as tf In code, please! 1. Create model weights, including initialization a. W ~ Uniform(-1, 1); b = 0 2. Create input placeholder x a. m * 784 input matrix 3. Create computation graph 1 2 3 b = tf. Variable(tf. zeros((100, ))) W = tf. Variable(tf. random_uniform((784, 100), -1, 1)) x = tf. placeholder(tf. float 32, (None, 784)) h_i = tf. nn. relu(tf. matmul(x, W) + b)

How do we run it? So far we have defined a graph. We can

How do we run it? So far we have defined a graph. We can deploy this graph with a session: a binding to a particular execution context (e. g. CPU, GPU)

import numpy as np import tensorflow as tf Getting output sess. run(fetches, feeds) Fetches:

import numpy as np import tensorflow as tf Getting output sess. run(fetches, feeds) Fetches: List of graph nodes. Return the outputs of these nodes. Feeds: Dictionary mapping from graph nodes to concrete values. Specifies the value of each graph node given in the dictionary. 1 2 3 b = tf. Variable(tf. zeros((100, ))) W = tf. Variable(tf. random_uniform((784, 100), -1, 1)) x = tf. placeholder(tf. float 32, (None, 784)) h_i = tf. nn. relu(tf. matmul(x, W) + b) sess = tf. Session() sess. run(tf. initialize_all_variable s()) sess. run(h_i, {x: np. random(64, 784)})

Basic flow 1. Build a graph a. Graph contains parameter specifications, model architecture, optimization

Basic flow 1. Build a graph a. Graph contains parameter specifications, model architecture, optimization process, … b. Somewhere between 5 and 5000 lines 2. Initialize a session 3. Fetch and feed data with Session. run a. Compilation, optimization, etc. happens at this step — you probably won’t notice