# Copyright 2021 Huawei Technologies Co., Ltd # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # ============================================================================ '''post process for 310 inference''' import os import argparse import numpy as np parser = argparse.ArgumentParser(description='fasterrcnn_export') parser.add_argument("--result_path", type=str, required=True, help="result file path") parser.add_argument("--label_file", type=str, required=True, help="label file") args = parser.parse_args() def read_label(label_file): f = open(label_file, "r") lines = f.readlines() img_label = {} for line in lines: img_id = line.split(":")[0] label = line.split(":")[1] img_label[img_id] = label return img_label def cal_acc(result_path, label_file): step = 0 sum_a = 0 img_label = read_label(label_file) files = os.listdir(result_path) for file in files: full_file_path = os.path.join(result_path, file) if os.path.isfile(full_file_path): result = np.fromfile(full_file_path, dtype=np.float32).reshape(1, 1000) pred = np.argmax(result, axis=1) step = step + 1 if pred == int(img_label[file[:-6]]): sum_a = sum_a + 1 print("========step:{}========".format(step)) print("========sum:{}========".format(sum_a)) accuracy = sum_a * 100.0 / step print("========accuraty:{}========".format(accuracy)) if __name__ == "__main__": cal_acc(args.result_path, args.label_file)