code: def test_load_save_inputs(tmpdir):
      i1 = C.input_variable((1, 2), name="i1")
      i2 = C.input_variable((2, 1), name="i2")
      root_node = C.plus(i1, i2)
      input1 = [[[1, 2]]]
      input2 = [[[[1], [2]]]]
  
      result = root_node.eval({i1: input1, i2: input2})
      expected = [[[[2, 3], [3, 4]]]]
      assert np.allclose(result, expected)
  
      filename = str(tmpdir / "i_plus_i_0.mod")
      root_node.save(filename)
  
      loaded_node = C.Function.load(filename)
  
      # Test specifying the input nodes by name
      loaded_result = loaded_node.eval({"i1": input1, "i2": input2})
      assert np.allclose(loaded_result, expected)
  
      filename = filename + ".legacy"
      save_as_legacy_model(root_node, filename)
      loaded_node = C.Function.load(filename)
      loaded_result = loaded_node.eval({"i1": input1, "i2": input2})
      assert np.allclose(loaded_result, expected)
  
file_path: CNTK/bindings/python/cntk/tests/persist_test.py
imports: import numpy
  import cntk
  from cntk.debugging import save_as_legacy_model
label_desc: Use image node_id 3 for calling a global function with example usage: test_load_save_inputs(tmpdir) without return types