code: def _test_infer_dynamic_axis(self, model, tokenizer, framework):
      feature_extractor = FeatureExtractionPipeline(model, tokenizer)
  
      variable_names = [
          "input_ids",
          "token_type_ids",
          "attention_mask",
          "output_0",
          "output_1",
      ]
      input_vars, output_vars, shapes, tokens = infer_shapes(
          feature_extractor, framework
      )
  
      # Assert all variables are present
      self.assertEqual(len(shapes), len(variable_names))
      self.assertTrue(
          all([var_name in shapes for var_name in variable_names])
      )
      self.assertSequenceEqual(variable_names[:3], input_vars)
      self.assertSequenceEqual(variable_names[3:], output_vars)
  
      # Assert inputs are {0: batch, 1: sequence}
      for var_name in ["input_ids", "token_type_ids", "attention_mask"]:
          self.assertDictEqual(
              shapes[var_name], {0: "batch", 1: "sequence"}
          )
  
      # Assert outputs are {0: batch, 1: sequence} and {0: batch}
      self.assertDictEqual(
          shapes["output_0"], {0: "batch", 1: "sequence"}
      )
      self.assertDictEqual(shapes["output_1"], {0: "batch"})
  
imports: import unittest
  from pathlib import Path
  from tempfile import NamedTemporaryFile, TemporaryDirectory
  from transformers import BertConfig, BertTokenizerFast, FeatureExtractionPipeline
  from transformers.convert_graph_to_onnx import convert, ensure_valid_input, generate_identified_filename, infer_shapes, quantize
  from transformers.testing_utils import require_tf, require_tokenizers, require_torch, slow
label_desc: Use image node_id 9 for calling the OnnxExportTestCase obj's underlying member method code with example usage: obj._test_infer_dynamic_axis(model, tokenizer, framework) without return types