code: def test_save_inference_model_with_multi_inputs(self):
      agent = TestAgent(self.double_alg)
      save_path1 = "my_inference_model_with_multi_inputs"
      save_path2 = os.path.join(
          "my_infer_model_with_multi_inputs", "model-2"
      )
      input_shapes = [[None, 4], [None, 4]]
      input_dtypes = ["float32", "float32"]
      agent.save_inference_model(save_path1, input_shapes, input_dtypes)
      agent.save_inference_model(save_path2, input_shapes, input_dtypes)
      self.assertTrue(os.path.exists(save_path1 + ".pdmodel"))
      self.assertTrue(os.path.exists(save_path2 + ".pdmodel"))
      input_shapes = (None, 4)
      input_dtypes = ["float32", "float32"]
      with self.assertRaises(AssertionError):
          agent.save_inference_model(
              save_path1, input_shapes, input_dtypes
          )
      input_shapes = [[None, 4]]
      input_dtypes = "float32"
      with self.assertRaises(AssertionError):
          agent.save_inference_model(
              save_path1, input_shapes, input_dtypes
          )
      input_shapes = [[None, 4]]
      input_dtypes = ["float32", "float32"]
      with self.assertRaises(AssertionError):
          agent.save_inference_model(
              save_path1, input_shapes, input_dtypes
          )
  
imports: import numpy
  import unittest
  import paddle
  import paddle.nn
  import parl
  import os
label_desc: Use image node_id 5 for calling the AgentBaseTest obj's underlying member method code with example usage: obj.test_save_inference_model_with_multi_inputs() without return types