code: def test_training_update(self):
      test_driver = get_initialised_driver()
      graph = test_driver.create_graph(test_driver.app, 1, True)
      with self.cached_session(graph=graph) as sess:
          SESS_STARTED.send(test_driver.app, iter_msg=None)
  
          train_op = test_driver.app.gradient_op
          test_tensor = graph.get_tensor_by_name(
              "G/conv_bn_selu/conv_/w:0"
          )
          var_0 = sess.run(test_tensor)
          sess.run(train_op)
          var_1 = sess.run(test_tensor)
          square_diff = np.sum(np.abs(var_0 - var_1))
          self.assertGreater(
              square_diff, 0.0, "train_op does not change model"
          )
          SESS_FINISHED.send(test_driver.app, itermsg=None)
          test_driver.app.stop()
  
imports: from __future__ import absolute_import, print_function
  import os
  import uuid
  import numpy
  import tensorflow
  from niftynet.engine.application_driver import ApplicationDriver
  from niftynet.engine.application_variables import global_vars_init_or_restore
  from niftynet.engine.handler_model import ModelRestorer
  from niftynet.io.misc_io import set_logger
  from niftynet.utilities.util_common import ParserNamespace
  from niftynet.engine.signal import SESS_FINISHED, SESS_STARTED
  from tests.niftynet_testcase import NiftyNetTestCase
label_desc: Use image node_id 2 for calling the ApplicationDriverTest obj's underlying member method code with example usage: obj.test_training_update() without return types