input: Write a function named "Transpile" that takes in four arguments: "src_dir", "dst_dir", "model_filename", and "params_filename". The function should create a CPUPlace object and an Executor object using Paddle Fluid. It should then create a Scope object and load the inference program, feed target names, and fetch targets using fluid.io.load_inference_model() with the provided arguments. The function should clone the inference program and apply the inference transpiler. It should then save the optimized inference program to the specified "dst_dir" and create the directory if it does not exist. Finally, the function should include a main function that takes in arguments using argparse.ArgumentParser() and calls the "Transpile" function with the parsed arguments.
  assert Transpile('source_dir', 'output_dir', 'model.pdmodel', 'params.pdiparams') == None
  assert Transpile('another_source_dir', 'another_output_dir', 'model2.pdmodel', 'params2.pdiparams') == None
  assert Transpile('', 'output_dir', 'empty_model.pdmodel', 'empty_params.pdiparams') == None
output: 
  def Transpile(src_dir, dst_dir, model_filename, params_filename):
      import os
      import paddle.fluid as fluid
  
      place = fluid.CPUPlace()
      exe = fluid.Executor(place)
      scope = fluid.core.Scope()
  
      with fluid.scope_guard(scope):
          [inference_program, feed_target_names, fetch_targets] = fluid.io.load_inference_model(
              dirname=src_dir,
              executor=exe,
              model_filename=model_filename,
              params_filename=params_filename
          )
  
          transpiled_program = fluid.compiler.CompiledProgram(inference_program).with_data_parallel(
              places=[place]
          )
  
          if not os.path.exists(dst_dir):
              os.makedirs(dst_dir)
  
          fluid.io.save_inference_model(
              dirname=dst_dir,
              feeded_var_names=feed_target_names,
              target_vars=fetch_targets,
              executor=exe,
              main_program=transpiled_program.program
          )
  