large scale data analysis u sing deep learning (prof. u...

48
Large Scale Data Analysis Using Deep Learning (Prof. U Kang) Introduction to TensorFlow 2017.04.17 Beunguk Ahn ( ) [email protected] 1

Upload: others

Post on 25-Mar-2020

5 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Large Scale Data Analysis U sing Deep Learning (Prof. U ...ukang/courses/17S-DL/L10-intro-tensorflow.pdf · Large Scale Data Analysis U sing Deep Learning (Prof. U Kang ) Introduction

Large Scale Data Analysis Using Deep Learning (Prof. U Kang)

Introduction to TensorFlow

2017.04.17 Beunguk Ahn

( )[email protected]

1

Page 2: Large Scale Data Analysis U sing Deep Learning (Prof. U ...ukang/courses/17S-DL/L10-intro-tensorflow.pdf · Large Scale Data Analysis U sing Deep Learning (Prof. U Kang ) Introduction

What is TensorFlow?Consturction PhaseExecution PhaseExamplesGotchas and Tips

Contents

2

Page 3: Large Scale Data Analysis U sing Deep Learning (Prof. U ...ukang/courses/17S-DL/L10-intro-tensorflow.pdf · Large Scale Data Analysis U sing Deep Learning (Prof. U Kang ) Introduction

What is TensorFlow?Consturction PhaseExecution PhaseExamplesGotchas and Tips

Contents

3

Page 4: Large Scale Data Analysis U sing Deep Learning (Prof. U ...ukang/courses/17S-DL/L10-intro-tensorflow.pdf · Large Scale Data Analysis U sing Deep Learning (Prof. U Kang ) Introduction

You already know how to use You already installed

PrerequisitesPython

TensorFlow

4

Page 5: Large Scale Data Analysis U sing Deep Learning (Prof. U ...ukang/courses/17S-DL/L10-intro-tensorflow.pdf · Large Scale Data Analysis U sing Deep Learning (Prof. U Kang ) Introduction

TensorFlowOpen source so�ware library for numerical

computation using data flow graphs.

Simply, it is one of widely used frameworks for deeplearning programs.

5

Page 6: Large Scale Data Analysis U sing Deep Learning (Prof. U ...ukang/courses/17S-DL/L10-intro-tensorflow.pdf · Large Scale Data Analysis U sing Deep Learning (Prof. U Kang ) Introduction

TensorFlowOpen source so�ware library for numerical

computation using data flow graphs.

Simply it is one of widely used frameworks for deeplearning programs.

6

Page 7: Large Scale Data Analysis U sing Deep Learning (Prof. U ...ukang/courses/17S-DL/L10-intro-tensorflow.pdf · Large Scale Data Analysis U sing Deep Learning (Prof. U Kang ) Introduction

Role of TensorFlowMachine learning flow in general

7

Page 8: Large Scale Data Analysis U sing Deep Learning (Prof. U ...ukang/courses/17S-DL/L10-intro-tensorflow.pdf · Large Scale Data Analysis U sing Deep Learning (Prof. U Kang ) Introduction

Why use TensorFlow?Large community engagement(Google)Multiple GPU SupportData and Model ParallelismPython + NumpyTensorboard

However, you don't have to use TensorFlow.Other frameworks like Theano, Caffe, Torch, etc are also good options.

8

Page 9: Large Scale Data Analysis U sing Deep Learning (Prof. U ...ukang/courses/17S-DL/L10-intro-tensorflow.pdf · Large Scale Data Analysis U sing Deep Learning (Prof. U Kang ) Introduction

TensorTensor is simply multi dimension array

1-D Tensor : vector2-D Tensor : matrix3-D Tensor : tensor4-D Tensor : tensor ...

1Dtensor = [ 1, 2] # vector 2Dtensor = [[ 1, 2], # matrix [ 3 ,4]] 3Dtensor = [[[ 1, 2], # tensor [ 3, 4]], [[ 5, 6], [ 7, 8]], [[ 9,10], [11,12]]]

9

Page 10: Large Scale Data Analysis U sing Deep Learning (Prof. U ...ukang/courses/17S-DL/L10-intro-tensorflow.pdf · Large Scale Data Analysis U sing Deep Learning (Prof. U Kang ) Introduction

Shape of TensorShape of tensor is expressed as tuple

import tensorflow as tf

scalar = tf.constant(1) # () zero = tf.constant([]) # (0,) vector = tf.constant([1,2,3,4]) # (4,) matrix = tf.constant([[1,2],[3,4]]) # (2, 2) tensor = tf.constant([[[1],[ 3]], # (3, 2, 1) [[5],[ 7]], [[9],[11]]]) print '\n'.join( map(str, [scalar, zero, vector, matrix, tensor]))

>>> Tensor("Const:0", shape=(1,), dtype=int32) >>> Tensor("Const_1:0", shape=(0,), dtype=float32) >>> Tensor("Const_2:0", shape=(4,), dtype=int32) >>> Tensor("Const_3:0", shape=(2, 2), dtype=int32) >>> Tensor("Const_4:0", shape=(3, 2, 1), dtype=int32)

10

Page 11: Large Scale Data Analysis U sing Deep Learning (Prof. U ...ukang/courses/17S-DL/L10-intro-tensorflow.pdf · Large Scale Data Analysis U sing Deep Learning (Prof. U Kang ) Introduction

Data Type of TensorWhat kind of data contained in tensor

Also float(32,64), [u]int(8,16,32,64), bool, complex(64,128) are also available

import tensorflow as tf

int32 = tf.constant([[1,2],[3,4]]) # int32 float32 = tf.constant([[1.0, 2], [3, 4.0]]) # float32 float64 = tf.constant([[1.0, 2], [3, 4.0]], # float64 dtype=tf.float64) _string = tf.constant([["A", "B"], ["C", "D"]], # string dtype=tf.string) print '\n'.join( map(str, [int32, float32, float64, _string]))

>>> Tensor("Const:0", shape=(2, 2), dtype=int32) >>> Tensor("Const_1:0", shape=(2, 2), dtype=float32) >>> Tensor("Const_2:0", shape=(2, 2), dtype=float64) >>> Tensor("Const_3:0", shape=(2, 2), dtype=string)

11

Page 12: Large Scale Data Analysis U sing Deep Learning (Prof. U ...ukang/courses/17S-DL/L10-intro-tensorflow.pdf · Large Scale Data Analysis U sing Deep Learning (Prof. U Kang ) Introduction

TensorFlow program in two partsConstruction Phase

Build a graphDeclare Variables, Placeholders, Operations,Optimizers

Execution PhaseInitialize model and runStart session and iterate through the graph

12

Page 13: Large Scale Data Analysis U sing Deep Learning (Prof. U ...ukang/courses/17S-DL/L10-intro-tensorflow.pdf · Large Scale Data Analysis U sing Deep Learning (Prof. U Kang ) Introduction

What is TensorFlow?Consturction PhaseExecution PhaseExamplesGotchas and Tips

Contents

13

Page 14: Large Scale Data Analysis U sing Deep Learning (Prof. U ...ukang/courses/17S-DL/L10-intro-tensorflow.pdf · Large Scale Data Analysis U sing Deep Learning (Prof. U Kang ) Introduction

VariableStores a scalar or tensorUsed as an input for OperationsRequires initial value for future useAt constuction phase, variables are "just" defined.

Value will be assigned a�er SessioninitializedYou will get an idea through slides

14

Page 15: Large Scale Data Analysis U sing Deep Learning (Prof. U ...ukang/courses/17S-DL/L10-intro-tensorflow.pdf · Large Scale Data Analysis U sing Deep Learning (Prof. U Kang ) Introduction

Variableimport tensorflow as tf

# Define variable, yet initialized w = tf.Variable(tf.random_normal([1, 3]), name="weight")

with tf.Session() as sess:

w_value = sess.run(w) # get value for var 'w'

print '\n'.join(map(str, ([w, w_value])))

"tensorflow.python.framework.errors_impl. FailedPreconditionError: Attempting to use uninitialized value weight"

15

Page 16: Large Scale Data Analysis U sing Deep Learning (Prof. U ...ukang/courses/17S-DL/L10-intro-tensorflow.pdf · Large Scale Data Analysis U sing Deep Learning (Prof. U Kang ) Introduction

Variableimport tensorflow as tf

# Define variable, yet initialized w = tf.Variable(tf.random_normal([1, 3]), name="weight")# Define init operation init_op = tf.global_variables_initializer()

with tf.Session() as sess: sess.run(init_op) # initialize all declared variables w_value = sess.run(w) # get value for var 'w'

print '\n'.join(map(str, ([w, w_value])))

>>> Tensor("weight/read:0", shape=(2, 3), dtype=float32)>>> [[-0.50282216 -1.94712341 -0.47356459]]

16

Page 17: Large Scale Data Analysis U sing Deep Learning (Prof. U ...ukang/courses/17S-DL/L10-intro-tensorflow.pdf · Large Scale Data Analysis U sing Deep Learning (Prof. U Kang ) Introduction

Variableimport tensorflow as tf

# Define variable, yet initialized w = tf.Variable(tf.random_normal([1, 3]), name="weight")# Define init operation init_op = tf.global_variables_initializer()

with tf.Session() as sess: sess.run(init_op) # initialize all declared variables w_value = sess.run(w); x_value = sess.run(w) sess.run(init_op) # re-initialize y_value = sess.run(w)

print '\n'.join(map(str, ([w_value, x_value, y_value])))

>>> [[-0.50282216 -1.94712341 -0.47356459]] >>> [[-0.50282216 -1.94712341 -0.47356459]] # same >>> [[ 1.1028192 0.25910807 2.37004709]] # changed

17

Page 18: Large Scale Data Analysis U sing Deep Learning (Prof. U ...ukang/courses/17S-DL/L10-intro-tensorflow.pdf · Large Scale Data Analysis U sing Deep Learning (Prof. U Kang ) Introduction

PlaceholderPlaceholder for tensorMust be fed with data on execution for operationthat takes the placeholder as operand

18

Page 19: Large Scale Data Analysis U sing Deep Learning (Prof. U ...ukang/courses/17S-DL/L10-intro-tensorflow.pdf · Large Scale Data Analysis U sing Deep Learning (Prof. U Kang ) Introduction

Placeholderimport tensorflow as tf

x = [[1, 2]] y = [[1], [3]] pla = tf.placeholder(tf.int32, (1,2)) matmul = tf.matmul(pla, y)

with tf.Session() as sess: A = sess.run(matmul)

print '\n'.join(map(str, ([pla, A])))

>>> "You must feed a value for placeholder tensor 'Placeholder' with dtype int32 and shape [1,2]"

19

Page 20: Large Scale Data Analysis U sing Deep Learning (Prof. U ...ukang/courses/17S-DL/L10-intro-tensorflow.pdf · Large Scale Data Analysis U sing Deep Learning (Prof. U Kang ) Introduction

Placeholderimport tensorflow as tf

x = [[1, 2]] y = [[1], [3]] pla = tf.placeholder(tf.int32, (1,2)) matmul = tf.matmul(pla, y)

with tf.Session() as sess: A = sess.run(matmul, feed_dict={pla : x})

print '\n'.join(map(str, ([pla, A])))

>>> Tensor("Placeholder:0", shape=(2, 3), dtype=int32) >>> [[7]]

20

Page 21: Large Scale Data Analysis U sing Deep Learning (Prof. U ...ukang/courses/17S-DL/L10-intro-tensorflow.pdf · Large Scale Data Analysis U sing Deep Learning (Prof. U Kang ) Introduction

Shape of PlaceholderShape could be partially known

import tensorflow as tf

p1 = tf.placeholder(tf.float32, [1, None])p2 = tf.placeholder(tf.float32, [None, 2])p3 = tf.placeholder(tf.float32, [None, None]) ops = [tf.multiply(x, 10) for x in [p1, p2, p3]] mat1 = [[1, 2]] mat2 = [[3, 4], [5, 6]] mat3 = [[1], [2]]

with tf.Session() as sess: print '\n'.join(map(str, sess.run(ops, feed_dict={ p1:mat1, p2:mat2, p3:mat3})))

>>> [[ 10. 20.]] >>> [[ 30. 40.] [ 50. 60.]] >>> [[ 10.] [ 20.]]

21

Page 22: Large Scale Data Analysis U sing Deep Learning (Prof. U ...ukang/courses/17S-DL/L10-intro-tensorflow.pdf · Large Scale Data Analysis U sing Deep Learning (Prof. U Kang ) Introduction

Shape of PlaceholderUseful when you feed input/output to your model

without giving the size of batchimport tensorflow as tf

# Placeholder MNIST # image size 28x28 x = tf.placeholder(tf.float32, [None, 784]) # 10 classes [0..9] y_ = tf.placeholder(tf.float32, [None, 10])

# Softmax regression Wx = b W = tf.Variable(tf.zeros([784, 10])) b = tf.Variable(tf.zeros([10])) y = tf.nn.softmax(tf.matmul(x, W) + b)

...

22

Page 23: Large Scale Data Analysis U sing Deep Learning (Prof. U ...ukang/courses/17S-DL/L10-intro-tensorflow.pdf · Large Scale Data Analysis U sing Deep Learning (Prof. U Kang ) Introduction

OperationOperation is graph node that performs computationon tensors

Computation should be run onSession

It takes inputs and generates outputs(optional)Usually, it ends up with prediction, cost function, orupdating variables

We have already seen some operations through the slides

23

Page 24: Large Scale Data Analysis U sing Deep Learning (Prof. U ...ukang/courses/17S-DL/L10-intro-tensorflow.pdf · Large Scale Data Analysis U sing Deep Learning (Prof. U Kang ) Introduction

OperationLinear Regression (Mean square error)

xW + b = y,L = ( W −12m′ ∑

m′

i=1 xi yi)2

import tensorflow as tf, numpy as np # tf Graph Input X = tf.placeholder("float") Y = tf.placeholder("float")

# Set model weights W = tf.Variable(np.random.randn(), name="weight") b = tf.Variable(np.random.randn(), name="bias")

# Construct a linear model pred = tf.add(tf.multiply(X, W), b)

# Mean square error cost = tf.reduce_sum(tf.pow(pred-Y, 2))/(2*n_samples)

24

Page 25: Large Scale Data Analysis U sing Deep Learning (Prof. U ...ukang/courses/17S-DL/L10-intro-tensorflow.pdf · Large Scale Data Analysis U sing Deep Learning (Prof. U Kang ) Introduction

OperationIt is better to read through documentation so that you

don't have to reinvent the wheel

Mathmatmul, reduce_sum, argmax, norm...

Assignassign, assign_add, assign_sub...

Tensor transformslice, split, stack, concat...

25

Page 26: Large Scale Data Analysis U sing Deep Learning (Prof. U ...ukang/courses/17S-DL/L10-intro-tensorflow.pdf · Large Scale Data Analysis U sing Deep Learning (Prof. U Kang ) Introduction

OptimizerProvides methods to compute gradients for a lossand apply gradients to variablesGetting cost function as input and

CalcualtegradientsProcess gradientsApply gradients

"minimize" method on Optmizers do all 3 stepsMany optimizers are alreafy implemented

Gradient Descent Optimizer, Adagrad Optimizer, RMSProp Optmizer...

26

Page 27: Large Scale Data Analysis U sing Deep Learning (Prof. U ...ukang/courses/17S-DL/L10-intro-tensorflow.pdf · Large Scale Data Analysis U sing Deep Learning (Prof. U Kang ) Introduction

Optimizerimport tensorflow as tf, numpy as np ... # Construct a linear model pred = tf.add(tf.multiply(X, W), b)

# Mean square error cost = tf.reduce_sum(tf.pow(pred-Y, 2))/(2*n_samples) # Gradient descent optimizer = tf.train\ .GradientDescentOptimizer(learning_rate)\ .minimize(cost)

with tf.Session() as sess: for epoch in range(training_epochs): for (x, y) in zip(train_X, train_Y): # SGD m'=1 sess.run(optimizer, feed_dict={X: x, Y: y}) # update weights

27

Page 28: Large Scale Data Analysis U sing Deep Learning (Prof. U ...ukang/courses/17S-DL/L10-intro-tensorflow.pdf · Large Scale Data Analysis U sing Deep Learning (Prof. U Kang ) Introduction

What is TensorFlow?Consturction PhaseExecution PhaseExamplesGotchas and Tips

Contents

28

Page 29: Large Scale Data Analysis U sing Deep Learning (Prof. U ...ukang/courses/17S-DL/L10-intro-tensorflow.pdf · Large Scale Data Analysis U sing Deep Learning (Prof. U Kang ) Introduction

SessionSession launchs the graph, initalize them, and runoperations as you definedWe have seen sessions through the slide, and I hopeyou got the idea of what it is

29

Page 30: Large Scale Data Analysis U sing Deep Learning (Prof. U ...ukang/courses/17S-DL/L10-intro-tensorflow.pdf · Large Scale Data Analysis U sing Deep Learning (Prof. U Kang ) Introduction

SessionYour data will be lost when you close the sessionimport tensorflow as tf

var = tf.Variable(tf.random_normal((1, 3))) init = tf.global_variables_initializer()

with tf.Session() as sess: sess.run(init) print sess.run(var) # Fetch train data # Calcuate cost # Optimize # Do Test # Display or Save print var.eval()

"No default session is registered. Use `with sess.as_default()` or pass an explicit session to ..."

30

Page 31: Large Scale Data Analysis U sing Deep Learning (Prof. U ...ukang/courses/17S-DL/L10-intro-tensorflow.pdf · Large Scale Data Analysis U sing Deep Learning (Prof. U Kang ) Introduction

What is TensorFlow?Consturction PhaseExecution PhaseExamplesGotchas and Tips

Contents

31

Page 32: Large Scale Data Analysis U sing Deep Learning (Prof. U ...ukang/courses/17S-DL/L10-intro-tensorflow.pdf · Large Scale Data Analysis U sing Deep Learning (Prof. U Kang ) Introduction

MNISTFamous example for deep learning

Data: Hand-writing digit[0-9] image data(28*28)

Each image will be treated as 784 length ofvector

Task: Classify what digit in each image10classes

Model: So�max regression modelAlso use 3 hiddenlayers

32

Page 33: Large Scale Data Analysis U sing Deep Learning (Prof. U ...ukang/courses/17S-DL/L10-intro-tensorflow.pdf · Large Scale Data Analysis U sing Deep Learning (Prof. U Kang ) Introduction

MNISTx = set of images

y = set of labels

laye = x +r1 W1 b1

laye = laye +r2 W2 r1 b2

pred = laye +W3 r2 b3

cost = y ∗ log(softmax(pre − ))1m′ ∑

m′

i=1 di yi33

Page 34: Large Scale Data Analysis U sing Deep Learning (Prof. U ...ukang/courses/17S-DL/L10-intro-tensorflow.pdf · Large Scale Data Analysis U sing Deep Learning (Prof. U Kang ) Introduction

Hyper parameters

Reference:

# Parameters learning_rate = 0.001 training_epochs = 15 batch_size = 100 display_step = 1

# Network Parameters n_hidden_1 = 256 # 1st layer number of features n_hidden_2 = 256 # 2nd layer number of features n_input = 784 # MNIST data input (img shape: 28*28) n_classes = 10 # MNIST total classes (0-9 digits)

TensorFlow Exmaples

34

Page 35: Large Scale Data Analysis U sing Deep Learning (Prof. U ...ukang/courses/17S-DL/L10-intro-tensorflow.pdf · Large Scale Data Analysis U sing Deep Learning (Prof. U Kang ) Introduction

Placeholder & Variablesimport tensorflow as tf

# tf Graph input x = tf.placeholder("float", [None, n_input]) # input y = tf.placeholder("float", [None, n_classes]) # output

# Store layers weight & bias h1 = tf.Variable(tf.random_normal([n_input, n_hidden_1])) h2 = tf.Variable(tf.random_normal([n_hidden_1, n_hidden_2])) out = tf.Variable(tf.random_normal([n_hidden_2, n_classes]))

b1 = tf.Variable(tf.random_normal([n_hidden_1])) b2 = tf.Variable(tf.random_normal([n_hidden_2])) b3 = tf.Variable(tf.random_normal([n_classes]))

35

Page 36: Large Scale Data Analysis U sing Deep Learning (Prof. U ...ukang/courses/17S-DL/L10-intro-tensorflow.pdf · Large Scale Data Analysis U sing Deep Learning (Prof. U Kang ) Introduction

36

Page 37: Large Scale Data Analysis U sing Deep Learning (Prof. U ...ukang/courses/17S-DL/L10-intro-tensorflow.pdf · Large Scale Data Analysis U sing Deep Learning (Prof. U Kang ) Introduction

Build a model# Hidden layer 1 with RELU activation layer_1 = tf.add(tf.matmul(x, h1), b1) layer_1 = tf.nn.relu(layer_1)

# Hidden layer 2 with RELU activation layer_2 = tf.add(tf.matmul(layer_1, h2), b2) layer_2 = tf.nn.relu(layer_2)

# Output layer with linear activation pred = tf.matmul(layer_2, out) + b3

37

Page 38: Large Scale Data Analysis U sing Deep Learning (Prof. U ...ukang/courses/17S-DL/L10-intro-tensorflow.pdf · Large Scale Data Analysis U sing Deep Learning (Prof. U Kang ) Introduction

38

Page 39: Large Scale Data Analysis U sing Deep Learning (Prof. U ...ukang/courses/17S-DL/L10-intro-tensorflow.pdf · Large Scale Data Analysis U sing Deep Learning (Prof. U Kang ) Introduction

Optimizer# Define loss and optimizer y_hat_softmax = tf.nn.softmax(pred) cost = tf.reduce_mean( -tf.reduce_sum(y * tf.log(y_hat_softmax), [1])) optimizer = tf.train.AdamOptimizer( learning_rate=learning_rate)\ .minimize(cost)

# Initializing the variables init = tf.global_variables_initializer()

39

Page 40: Large Scale Data Analysis U sing Deep Learning (Prof. U ...ukang/courses/17S-DL/L10-intro-tensorflow.pdf · Large Scale Data Analysis U sing Deep Learning (Prof. U Kang ) Introduction

40

Page 41: Large Scale Data Analysis U sing Deep Learning (Prof. U ...ukang/courses/17S-DL/L10-intro-tensorflow.pdf · Large Scale Data Analysis U sing Deep Learning (Prof. U Kang ) Introduction

Run & Learn# Launch the graph with tf.Session() as sess: sess.run(init)

# Training cycle for epoch in range(training_epochs): avg_cost = 0. total_batch = int(mnist.train.num_examples/batch_size) # Loop over all batches for i in range(total_batch): batch_x, batch_y = mnist.train.next_batch(batch_size) # Run optimization op (backprop) and cost op (to get loss value) _, c = sess.run([optimizer, cost], feed_dict={x: batch_x, y: batch_y}) # Compute average loss avg_cost += c / total_batch # Display logs per epoch step if epoch % display_step == 0: print "Epoch:", '%04d' % (epoch+1), "cost=", \ "{:.9f}".format(avg_cost) print "Optimization Finished!"

# Test model correct_prediction = tf.equal(tf.argmax(pred, 1), tf.argmax(y, 1)) # Calculate accuracy accuracy = tf.reduce_mean(tf.cast(correct_prediction, "float")) print "Accuracy:", accuracy.eval({x: mnist.test.images, y: mnist.test.labels})

41

Page 42: Large Scale Data Analysis U sing Deep Learning (Prof. U ...ukang/courses/17S-DL/L10-intro-tensorflow.pdf · Large Scale Data Analysis U sing Deep Learning (Prof. U Kang ) Introduction

Result>>> ... >>> Epoch: 0010 cost= 3.325720582 >>> Epoch: 0011 cost= 2.454958990 >>> Epoch: 0012 cost= 1.861004718 >>> Epoch: 0013 cost= 1.412745127 >>> Epoch: 0014 cost= 1.158697252 >>> Epoch: 0015 cost= 0.943136121 >>> Optimization Finished! >>> Accuracy: 0.9485

42

Page 43: Large Scale Data Analysis U sing Deep Learning (Prof. U ...ukang/courses/17S-DL/L10-intro-tensorflow.pdf · Large Scale Data Analysis U sing Deep Learning (Prof. U Kang ) Introduction

What is TensorFlow?Consturction PhaseExecution PhaseExamplesGotchas and Tips

Contents

43

Page 44: Large Scale Data Analysis U sing Deep Learning (Prof. U ...ukang/courses/17S-DL/L10-intro-tensorflow.pdf · Large Scale Data Analysis U sing Deep Learning (Prof. U Kang ) Introduction

Gotchas & TipsDon't forget to put value to feed_dict

import tensorflow as tf

pla = tf.placeholder(tf.int32, [2,2]) x = tf.Variable([[1,2],[3,4]]) y = tf.Variable([[3,4],[1,2]]) init = tf.global_variables_initializer() matmul = tf.matmul(pla, y)

with tf.Session() as sess: sess.run(init)

f_dict = { pla: x } # x is actually tensor "object" result = sess.run(matmul, feed_dict=f_dict) print result

"ValueError: setting an array element with a sequence."

44

Page 45: Large Scale Data Analysis U sing Deep Learning (Prof. U ...ukang/courses/17S-DL/L10-intro-tensorflow.pdf · Large Scale Data Analysis U sing Deep Learning (Prof. U Kang ) Introduction

Gotchas & TipsDon't forget to put value to feed_dict

import tensorflow as tf

pla = tf.placeholder(tf.int32, [2,2]) x = tf.Variable([[1,2],[3,4]]) y = tf.Variable([[3,4],[1,2]]) init = tf.global_variables_initializer() matmul = tf.matmul(pla, y)

with tf.Session() as sess: sess.run(init) x_v = sess.run(x) f_dict = { pla: x_v } # x_v is now "array(2,2)" result = sess.run(matmul, feed_dict=f_dict) print result

>>> [[ 5 8] [13 20]]

45

Page 46: Large Scale Data Analysis U sing Deep Learning (Prof. U ...ukang/courses/17S-DL/L10-intro-tensorflow.pdf · Large Scale Data Analysis U sing Deep Learning (Prof. U Kang ) Introduction

Gotchas & TipsBetter not to make Variable/Placeholder/Operation

inside epochimport tensorflow as tf

with tf.Session() as sess: for epoch in range(100): # It will make session overflow! v = tf.Variable([[1,2]]) op = tf.add(1,2) pla = tf.placeholder(tf.int32, [1,2])

print '\n'.join(map(str, [v, op, pla]))

>>> ... >>> Tensor("Variable_99/read:0", shape=(1, 2), dtype=int32) >>> Tensor("Add_99:0", shape=(), dtype=int32) >>> Tensor("Placeholder_99:0", shape=(1, 2), dtype=int32)

46

Page 48: Large Scale Data Analysis U sing Deep Learning (Prof. U ...ukang/courses/17S-DL/L10-intro-tensorflow.pdf · Large Scale Data Analysis U sing Deep Learning (Prof. U Kang ) Introduction

Q & A

48