def testTensorBoardDebugHookDisablingTracebackSourceCodeSendingWorks(self): u = variables.Variable(2.1, name="u") v = variables.Variable(20.0, name="v") w = math_ops.multiply(u, v, name="w") sess = session.Session( config=session_debug_testlib.no_rewrite_session_config()) sess.run(variables.global_variables_initializer()) grpc_debug_hook = hooks.TensorBoardDebugHook( ["localhost:%d" % self._server_port], send_traceback_and_source_code=False) sess = monitored_session._HookedSession(sess, [grpc_debug_hook]) # Activate watch point on a tensor before calling sess.run(). self._server.request_watch("u/read", 0, "DebugIdentity") self.assertAllClose(42.0, sess.run(w)) # Check that the server has _not_ received any tracebacks, as a result of # the disabling above. with self.assertRaisesRegexp(ValueError, r"Op .*u/read.* does not exist"): self.assertTrue(self._server.query_op_traceback("u/read")) with self.assertRaisesRegexp(ValueError, r".* has not received any source file"): self._server.query_source_file_line(__file__, 1)
def testTensorBoardDebugHooWorks(self): u = variables.Variable(2.1, name="u") v = variables.Variable(20.0, name="v") w = math_ops.multiply(u, v, name="w") sess = session.Session(config=no_rewrite_session_config()) sess.run(u.initializer) sess.run(v.initializer) grpc_debug_hook = hooks.TensorBoardDebugHook( ["localhost:%d" % self._server_port]) sess = monitored_session._HookedSession(sess, [grpc_debug_hook]) self.assertAllClose(42.0, sess.run(w))
def testTensorBoardDebugHookWorks(self): u = variables.Variable(2.1, name="u") v = variables.Variable(20.0, name="v") w = math_ops.multiply(u, v, name="w") sess = session.Session( config=session_debug_testlib.no_rewrite_session_config()) sess.run(u.initializer) sess.run(v.initializer) grpc_debug_hook = hooks.TensorBoardDebugHook( ["localhost:%d" % self._server_port]) sess = monitored_session._HookedSession(sess, [grpc_debug_hook]) # Activate watch point on a tensor before calling sess.run(). self._server.request_watch("u/read", 0, "DebugIdentity") self.assertAllClose(42.0, sess.run(w)) # self.assertAllClose(42.0, sess.run(w)) dump = debug_data.DebugDumpDir(self._dump_root) self.assertAllClose([2.1], dump.get_tensors("u/read", 0, "DebugIdentity")) # Check that the server has received the stack trace. self.assertTrue(self._server.query_op_traceback("u")) self.assertTrue(self._server.query_op_traceback("u/read")) self.assertTrue(self._server.query_op_traceback("v")) self.assertTrue(self._server.query_op_traceback("v/read")) self.assertTrue(self._server.query_op_traceback("w")) # Check that the server has received the python file content. # Query an arbitrary line to make sure that is the case. with open(__file__, "rt") as this_source_file: first_line = this_source_file.readline().strip() self.assertEqual(first_line, self._server.query_source_file_line(__file__, 1)) self._server.clear_data() # Call sess.run() again, and verify that this time the traceback and source # code is not sent, because the graph version is not newer. self.assertAllClose(42.0, sess.run(w)) with self.assertRaises(ValueError): self._server.query_op_traceback("delta_1") with self.assertRaises(ValueError): self._server.query_source_file_line(__file__, 1)