code: def test_infer_shape(self):
      # test infer shape does not need to against inline case
      # since the Op is remove during optimization phase
      x = T.matrix("x")
      y = T.matrix("y")
      o1 = x + y
      o2 = x * y
      op_graph = OpFromGraph([x, y], [o1, o2])
  
      q = T.matrix("q")
      p = T.matrix("p")
      self._compile_and_check(
          [q, p],
          op_graph(q, p),
          [
              np.ones([3, 4], dtype=config.floatX),
              np.ones([3, 4], dtype=config.floatX),
          ],
          OpFromGraph,
      )
  
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 14 for calling the T_OpFromGraph obj's underlying member method code with example usage: obj.test_infer_shape() without return types