def METHOD_NAME(args):
    predictor, pred_config = init_predictor(args)
    place = paddle.set_device('gpu' if args.use_gpu else 'cpu')
    args.place = place
    input_names = predictor.get_input_names()
    output_names = predictor.get_output_names()
    test_dataloader = create_data_loader(args)
    if args.benchmark:
        import auto_log
        pid = os.getpid()
        autolog = auto_log.AutoLogger(
            model_name=args.model_name,
            model_precision=args.precision,
            batch_size=args.batchsize,
            data_shape="dynamic",
            save_path=args.save_log_path,
            inference_config=pred_config,
            pids=pid,
            process_name=None,
            gpu_ids=0,
            time_keys=[
                'preprocess_time', 'inference_time', 'postprocess_time'
            ])
    for batch_id, batch_data in enumerate(test_dataloader):
        batch_data[1] = batch_data[1][0]
        name_data_pair = dict(zip(input_names, batch_data))
        if args.benchmark:
            autolog.times.start()
        for name in input_names:
            input_tensor = predictor.get_input_handle(name)
            input_tensor.copy_from_cpu(name_data_pair[name].numpy())
        if args.benchmark:
            autolog.times.stamp()
        predictor.run()
        for name in output_names:
            output_tensor = predictor.get_output_handle(name)
            output_data = output_tensor.copy_to_cpu()
        results = []
        results_type = []
        if args.benchmark:
            autolog.times.stamp()
        for name in output_names:
            results_type.append(output_tensor.type())
            results.append(output_data[0])
        if args.benchmark:
            autolog.times.end(stamp=True)
        print(results)
    if args.benchmark:
        autolog.report()