code: def test_returning_input_symbolic_shapes(self):
      mm = torch.jit.freeze(
          torch.jit.script(nn.Conv2d(16, 33, 3, stride=2).eval())
      )
      inps = list(mm.graph.inputs())
      inps[1].setType(
          inps[1].type().with_sizes([None, None, None, None])
      )
      shape_compute_graph = torch._C._jit_pass_propagate_shapes_on_graph_and_build_compute(
          mm.graph
      )
      g = shape_compute_graph.partial_eval_shape_graph()
      # to make into a jit function cant have multiple outputs
      g.makeMultiOutputIntoTuple()
      func = torch._C._create_function_from_graph(
          "partial_eval_graph", g
      )
      out = func([20, 16, 5, 10])
      # first four outputs should be unknown symbolic shapes from input
      self.assertEqual(out[0:4], [20, 16, 5, 10])
      # last two are two new symbolic dims - height and width
      self.assertEqual(
          out[4:], list(mm(torch.rand([20, 16, 5, 10])).size()[2:])
      )
  
imports: import operator
  import unittest
  from textwrap import dedent
  import torch
  from torch import nn, Tensor
  from torch.testing import FileCheck
  from torch.testing._internal.common_methods_invocations import sample_inputs_cat_concat
  from torch.testing._internal.common_utils import make_tensor
  from torch.testing._internal.jit_utils import JitTestCase, execWrapper
  from typing import List, Any
label_desc: Use image node_id 19 for calling the TestSymbolicShapeAnalysis obj's underlying member method code with example usage: obj.test_returning_input_symbolic_shapes() without return types