def METHOD_NAME():
    devices = paddle.device.get_device().split(':')[0]
    places = paddle.device._convert_to_place(devices)
    exe = paddle.static.Executor(places)
    val_program, feed_target_names, fetch_targets = paddle.static.load_inference_model(
        global_config["model_dir"],
        exe,
        model_filename=global_config["model_filename"],
        params_filename=global_config["params_filename"])
    features = None
    for _var in val_program.list_vars():
        print(f"meeting: {_var.name}")
        if _var.name == "conv2d_98.tmp_1":
            print(f"find {_var.name}")
            features = _var
    fetch_targets.append(features)
    print('Loaded model from: {}'.format(global_config["model_dir"]))
    val_loader = eval_reader(
        data_dir,
        batch_size=global_config['batch_size'],
        crop_size=img_size,
        resize_size=resize_size)
    results = []
    print('Evaluating...')
    for batch_id, (image, label) in enumerate(val_loader):
        image = np.array(image)
        label = np.array(label).astype('int64')
        pred = exe.run(
            val_program,
            feed={feed_target_names[0]: image},
            fetch_list=fetch_targets)
        features = np.array(pred[1])
        print(f"feature shape: {features.shape}")
        pred = np.array(pred[0])
        label = np.array(label)
        sort_array = pred.argsort(axis=1)
        top_1_pred = sort_array[:, -1:][:, ::-1]
        top_1 = np.mean(label == top_1_pred)
        top_5_pred = sort_array[:, -5:][:, ::-1]
        acc_num = 0
        for i in range(len(label)):
            if label[i][0] in top_5_pred[i]:
                acc_num += 1
        top_5 = float(acc_num) / len(label)
        results.append([top_1, top_5])
        break
    result = np.mean(np.array(results), axis=0)
    return result[0]