Question: 1.) The following python code is from Geron section Training a sequence classifier. Run the code without the fixed random number seed: import tensorflow as
1.) The following python code is from Geron section "Training a sequence classifier". Run the code without the fixed random number seed:
import tensorflow as tf
n_steps = 28 n_inputs = 28 n_neurons = 150 n_outputs = 10
learning_rate = 0.001
X = tf.placeholder(tf.float32, [None, n_steps, n_inputs]) y = tf.placeholder(tf.int32, [None])
basic_cell = tf.contrib.rnn.BasicRNNCell(num_units=n_neurons) outputs, states = tf.nn.dynamic_rnn(basic_cell, X, dtype=tf.float32)
logits = tf.layers.dense(states, n_outputs) xentropy = tf.nn.sparse_softmax_cross_entropy_with_logits(labels=y, logits=logits) loss = tf.reduce_mean(xentropy) optimizer = tf.train.AdamOptimizer(learning_rate=learning_rate) training_op = optimizer.minimize(loss) correct = tf.nn.in_top_k(logits, y, 1) accuracy = tf.reduce_mean(tf.cast(correct, tf.float32))
init = tf.global_variables_initializer()
from tensorflow.examples.tutorials.mnist import input_data mnist = input_data.read_data_sets("/tmp/data/") X_test = mnist.test.images.reshape((-1, n_steps, n_inputs)) y_test = mnist.test.labels
n_epochs = 30 batch_size = 150
with tf.Session() as sess: init.run() for epoch in range(n_epochs): for iteration in range(mnist.train.num_examples // batch_size): X_batch, y_batch = mnist.train.next_batch(batch_size) X_batch = X_batch.reshape((-1, n_steps, n_inputs)) sess.run(training_op, feed_dict={X: X_batch, y: y_batch}) acc_train = accuracy.eval(feed_dict={X: X_batch, y: y_batch}) acc_test = accuracy.eval(feed_dict={X: X_test, y: y_test}) print(epoch, "Train accuracy:", acc_train, "Test accuracy:", acc_test)
2.) The following picture is a computational graph for the above code. Please identify the "while loops" in the graph by adding marks onto the graph.

3.) The node names are below:
133 0 Placeholder 1 Placeholder_1 2 Rank 3 range/start 4 range/delta 5 range 6 concat/values_0 7 concat/axis 8 concat 9 transpose 10 rnn/Shape 11 rnn/strided_slice/stack 12 rnn/strided_slice/stack_1 13 rnn/strided_slice/stack_2 14 rnn/strided_slice 15 rnn/BasicRNNCellZeroState/ExpandDims/dim 16 rnn/BasicRNNCellZeroState/ExpandDims 17 rnn/BasicRNNCellZeroState/Const 18 rnn/BasicRNNCellZeroState/concat/axis 19 rnn/BasicRNNCellZeroState/concat 20 rnn/BasicRNNCellZeroState/zeros/Const 21 rnn/BasicRNNCellZeroState/zeros 22 rnn/BasicRNNCellZeroState/ExpandDims_1/dim 23 rnn/BasicRNNCellZeroState/ExpandDims_1 24 rnn/BasicRNNCellZeroState/Const_1 25 rnn/Shape_1 26 rnn/strided_slice_1/stack 27 rnn/strided_slice_1/stack_1 28 rnn/strided_slice_1/stack_2 29 rnn/strided_slice_1 30 rnn/Shape_2 31 rnn/strided_slice_2/stack 32 rnn/strided_slice_2/stack_1 33 rnn/strided_slice_2/stack_2 34 rnn/strided_slice_2 35 rnn/ExpandDims/dim 36 rnn/ExpandDims 37 rnn/Const 38 rnn/concat/axis 39 rnn/concat 40 rnn/zeros/Const 41 rnn/zeros 42 rnn/time 43 rnn/TensorArray 44 rnn/TensorArray_1 45 rnn/TensorArrayUnstack/Shape 46 rnn/TensorArrayUnstack/strided_slice/stack 47 rnn/TensorArrayUnstack/strided_slice/stack_1 48 rnn/TensorArrayUnstack/strided_slice/stack_2 49 rnn/TensorArrayUnstack/strided_slice 50 rnn/TensorArrayUnstack/range/start 51 rnn/TensorArrayUnstack/range/delta 52 rnn/TensorArrayUnstack/range 53 rnn/TensorArrayUnstack/TensorArrayScatter/TensorArrayScatterV3 54 rnn/while/Enter 55 rnn/while/Enter_1 56 rnn/while/Enter_2 57 rnn/while/Merge 58 rnn/while/Merge_1 59 rnn/while/Merge_2 60 rnn/while/Less/Enter 61 rnn/while/Less 62 rnn/while/LoopCond 63 rnn/while/Switch 64 rnn/while/Switch_1 65 rnn/while/Switch_2 66 rnn/while/Identity 67 rnn/while/Identity_1 68 rnn/while/Identity_2 69 rnn/while/TensorArrayReadV3/Enter 70 rnn/while/TensorArrayReadV3/Enter_1 71 rnn/while/TensorArrayReadV3 72 rnn/basic_rnn_cell/kernel/Initializer/random_uniform/shape 73 rnn/basic_rnn_cell/kernel/Initializer/random_uniform/min 74 rnn/basic_rnn_cell/kernel/Initializer/random_uniform/max 75 rnn/basic_rnn_cell/kernel/Initializer/random_uniform/RandomUniform 76 rnn/basic_rnn_cell/kernel/Initializer/random_uniform/sub 77 rnn/basic_rnn_cell/kernel/Initializer/random_uniform/mul 78 rnn/basic_rnn_cell/kernel/Initializer/random_uniform 79 rnn/basic_rnn_cell/kernel 80 rnn/basic_rnn_cell/kernel/Assign 81 rnn/basic_rnn_cell/kernel/read 82 rnn/basic_rnn_cell/bias/Initializer/Const 83 rnn/basic_rnn_cell/bias 84 rnn/basic_rnn_cell/bias/Assign 85 rnn/basic_rnn_cell/bias/read 86 rnn/while/rnn/basic_rnn_cell/concat/axis 87 rnn/while/rnn/basic_rnn_cell/concat 88 rnn/while/rnn/basic_rnn_cell/MatMul/Enter 89 rnn/while/rnn/basic_rnn_cell/MatMul 90 rnn/while/rnn/basic_rnn_cell/BiasAdd/Enter 91 rnn/while/rnn/basic_rnn_cell/BiasAdd 92 rnn/while/rnn/basic_rnn_cell/Tanh 93 rnn/while/TensorArrayWrite/TensorArrayWriteV3/Enter 94 rnn/while/TensorArrayWrite/TensorArrayWriteV3 95 rnn/while/add/y 96 rnn/while/add 97 rnn/while/NextIteration 98 rnn/while/NextIteration_1 99 rnn/while/NextIteration_2 100 rnn/while/Exit 101 rnn/while/Exit_1 102 rnn/while/Exit_2 103 rnn/TensorArrayStack/TensorArraySizeV3 104 rnn/TensorArrayStack/range/start 105 rnn/TensorArrayStack/range/delta 106 rnn/TensorArrayStack/range 107 rnn/TensorArrayStack/TensorArrayGatherV3 108 rnn/Const_1 109 rnn/Rank 110 rnn/range/start 111 rnn/range/delta 112 rnn/range 113 rnn/concat_1/values_0 114 rnn/concat_1/axis 115 rnn/concat_1 116 rnn/transpose 117 dense/kernel/Initializer/random_uniform/shape 118 dense/kernel/Initializer/random_uniform/min 119 dense/kernel/Initializer/random_uniform/max 120 dense/kernel/Initializer/random_uniform/RandomUniform 121 dense/kernel/Initializer/random_uniform/sub 122 dense/kernel/Initializer/random_uniform/mul 123 dense/kernel/Initializer/random_uniform 124 dense/kernel 125 dense/kernel/Assign 126 dense/kernel/read 127 dense/bias/Initializer/zeros 128 dense/bias 129 dense/bias/Assign 130 dense/bias/read 131 dense/MatMul 132 dense/BiasAdd
Step by Step Solution
There are 3 Steps involved in it
Get step-by-step solutions from verified subject matter experts
