Skip to content

Commit bff95a7

Browse files
Fix lab1 assertion dense layer output assertion
1) tf.random.set_seed only sets the global seed https://www.tensorflow.org/api_docs/python/tf/random/set_seed 2) we need to set keras set_random_seed to make all seeds be deterministic. docs : https://www.tensorflow.org/api_docs/python/tf/config/experimental/enable_op_determinism, https://www.tensorflow.org/api_docs/python/tf/keras/utils/set_random_seed. enable_op_determinism might not be needed here but its good to have. fixes MITDeepLearning#116
1 parent 3d7b511 commit bff95a7

File tree

2 files changed

+7
-4
lines changed

2 files changed

+7
-4
lines changed

lab1/Part1_TensorFlow.ipynb

+5-2
Original file line numberDiff line numberDiff line change
@@ -366,8 +366,11 @@
366366
" y = # TODO\n",
367367
" return y\n",
368368
"\n",
369-
"# Since layer parameters are initialized randomly, we will set a random seed for reproducibility\n",
370-
"tf.random.set_seed(1)\n",
369+
"# Since layer parameters are initialized randomly, we will set random seed for reproducibility \n",
370+
"# and make operations deterministic\n",
371+
"tf.keras.utils.set_random_seed(1)\n",
372+
"tf.config.experimental.enable_op_determinism()\n",
373+
"\n",
371374
"layer = OurDenseLayer(3)\n",
372375
"layer.build((1,2))\n",
373376
"x_input = tf.constant([[1,2.]], shape=(1,2))\n",

mitdeeplearning/lab1.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -80,8 +80,8 @@ def test_batch_func_next_step(func, args):
8080
return True
8181

8282
def test_custom_dense_layer_output(y):
83-
true_y = np.array([[0.2697859, 0.45750418, 0.66536945]],dtype='float32')
83+
true_y = np.array([[0.27064407, 0.1826951, 0.50374055]],dtype='float32')
8484
assert tf.shape(y).numpy().tolist() == list(true_y.shape), "[FAIL] output is of incorrect shape. expected {} but got {}".format(true_y.shape, y.numpy().shape)
85-
np.testing.assert_almost_equal(y.numpy(), true_y, decimal=7, err_msg="[FAIL] output is of incorrect value. expected {} but got {}".format(y.numpy(), true_y), verbose=True)
85+
np.testing.assert_almost_equal(y.numpy(), true_y, decimal=7, err_msg="[FAIL] output is of incorrect value. expected {} but got {}".format(true_y,y.numpy()), verbose=True)
8686
print("[PASS] test_custom_dense_layer_output")
8787
return True

0 commit comments

Comments
 (0)