def METHOD_NAME(self,
                model_path,
                model_filename='__model__',
                params_filename='__params__',
                threads_num=None):
    print("test model path:" + model_path)
    import onnxruntime as rt
    import paddle2onnx
    onnx_model = paddle2onnx.command.c_paddle_to_onnx(
        model_file=model_path + "/" + model_filename,
        params_file=model_path + "/" + params_filename,
        opset_version=13,
        enable_onnx_checker=True)
    sess_options = rt.SessionOptions()
    if threads_num is not None:
        sess_options.intra_op_num_threads = threads_num
    sess = rt.InferenceSession(
        onnx_model, sess_options, providers=['CPUExecutionProvider'])
    input_names = [input.name for input in sess.get_inputs()]
    input_shape = [input.shape for input in sess.get_inputs()]
    input_dict = {}
    for index in range(len(input_shape)):
        shape = input_shape[index]
        name = input_names[index]
        new_shape = []
        for i in shape:
            if isinstance(i, str) or i is None or i <= 0:
                i = 1
            new_shape.append(i)
        input_dict[name] = np.ones(new_shape, dtype="float32")
    periods = []
    for i in range(1600):
        if i == 200:
            t1 = time.time()
        out = sess.run(None, input_dict)
    t2 = time.time()
    period = t2 - t1
    periods.append(period)
    latency = np.average(periods)
    return latency