code: def test_rop(self, cls_ofg):
      a = T.vector()
      M = T.matrix()
      b = T.dot(a, M)
      op_matmul = cls_ofg([a, M], [b])
      x = T.vector()
      W = T.matrix()
      y = op_matmul(x, W)
      du = T.vector()
      dv = T.Rop(y, x, du)
      fn = function([x, W, du], dv)
      xval = np.random.rand(16).astype(config.floatX)
      Wval = np.random.rand(16, 16).astype(config.floatX)
      duval = np.random.rand(16).astype(config.floatX)
      dvval = np.dot(duval, Wval)
      dvval2 = fn(xval, Wval, duval)
      assert np.allclose(dvval2, dvval)
  
imports: from __future__ import absolute_import, print_function, division
  from functools import partial
  import numpy
  import theano
  from theano import config, shared
  from theano.gradient import DisconnectedType
  from theano.gof.null_type import NullType
  from theano.compile import function
  from theano import tensor
  from theano.tensor.shared_randomstreams import RandomStreams
  from theano.compile.builders import OpFromGraph
  from theano.tests import unittest_tools
label_desc: Use image node_id 9 for calling the T_OpFromGraph obj's underlying member method code with example usage: obj.test_rop(cls_ofg) without return types