input: Write a function to transpile an inference model using Paddle Fluid, optimize it, and save the optimized model to a specified directory. The function should take four arguments: "src_dir", "dst_dir", "model_filename", and "params_filename". Inside the function, create a CPUPlace object and an Executor object using Paddle Fluid. Load the inference program, feed target names, and fetch targets using fluid.io.load_inference_model(). Clone the inference program and apply the inference transpiler using fluid.InferenceTranspiler() and t.transpile(). Save the optimized inference program to "dst_dir" using fluid.io.save_persistables(). If "dst_dir" does not exist, create it using os.makedirs(). Finally, create a main function that takes in arguments using argparse.ArgumentParser() and calls the "Transpile" function with the parsed arguments.
  assert Transpile("source_directory", "destination_directory", "model.pdmodel", "params.pdiparams")
  assert os.path.exists("destination_directory/model.pdmodel")
  assert os.path.exists("destination_directory/params.pdiparams")
output: def Transpile(src_dir, dst_dir, model_filename, params_filename):
      import paddle.fluid as fluid
      import os
  
      place = fluid.CPUPlace()
      exe = fluid.Executor(place)
  
      [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)
  
      t = fluid.InferenceTranspiler()
      t.transpile(inference_program, place)
  
      if not os.path.exists(dst_dir):
          os.makedirs(dst_dir)
  
      fluid.io.save_persistables(executor=exe, dirname=dst_dir, main_program=inference_program)