首页 PaddleCV 帖子详情
PaddleClas预测结果默认保存在哪里? 已解决
收藏
快速回复
PaddleCV 问答图像分类 2093 6
PaddleClas预测结果默认保存在哪里? 已解决
收藏
快速回复
PaddleCV 问答图像分类 2093 6
python3 tools/infer.py \
    -c ./ppcls/configs/quick_start/MobileNetV3_large_x1_0.yaml \
    -o Infer.infer_imgs=dataset/flowers102/jpg/image_00001.jpg \  #待预测的图片文件路径或者批量预测时的图片文件夹
    -o Global.pretrained_model=./output/MobileNetV3_large_x1_0/best_model

PaddleClas训练好后,运行以上代码,可以看到打印出的预测结果。

问一下预测结果默认保存在哪个变量或文件里了?如果没有保存的话怎样指定保存位置?

 

jsdbzcm
已解决
2# 回复于2022-01
自己搞定了,修改PaddleClas/ppcls/engine/engine.py文件,在infer函数中添加3行(位置见备注),就可以把预测结果保存在result.npy文件中了。 [代码]
展开
1
收藏
回复
全部评论(6)
时间顺序
jsdbzcm
#2 回复于2022-01

自己搞定了,修改PaddleClas/ppcls/engine/engine.py文件,在infer函数中添加3行(位置见备注),就可以把预测结果保存在result.npy文件中了。

    @paddle.no_grad()
    def infer(self):
        assert self.mode == "infer" and self.eval_mode == "classification"
        total_trainer = paddle.distributed.get_world_size()
        local_rank = paddle.distributed.get_rank()
        image_list = get_image_list(self.config["Infer"]["infer_imgs"])
        # data split
        image_list = image_list[local_rank::total_trainer]

        batch_size = self.config["Infer"]["batch_size"]
        self.model.eval()
        batch_data = []
        image_file_list = []
        results=[]             # 添加1行
        for idx, image_file in enumerate(image_list):
            with open(image_file, 'rb') as f:
                x = f.read()
            for process in self.preprocess_func:
                x = process(x)
            batch_data.append(x)
            image_file_list.append(image_file)
            if len(batch_data) >= batch_size or idx == len(image_list) - 1:
                batch_tensor = paddle.to_tensor(batch_data)
                out = self.model(batch_tensor)
                if isinstance(out, list):
                    out = out[0]
                if isinstance(out, dict):
                    out = out["output"]
                result = self.postprocess_func(out, image_file_list)
                print(result)    
                results.append(result)  #添加1行
                batch_data.clear()
                image_file_list.clear()
        np.save('result.npy',results)   #添加1行
2
回复
李长安
#3 回复于2022-01

应该是可以指定参数,直接保存出一个result.txt的,可以看看对应的参数。

0
回复
D
DavidFeii
#4 回复于2022-02

学习了,谢谢大佬们

0
回复
璨璨
#5 回复于2022-02

学习了~

 

0
回复
璨璨
#6 回复于2022-02

paddleclas2.1版本的文件组织结构好像不一样,这样改的:

 

改文件PaddleClas/tools/infer/infer.py

 

然后执行infer.py脚本,最后在/home/aistudio/目录下生成result_test.csv文件

0
回复
wl_zzz
#7 回复于2023-02

学习了

0
回复
需求/bug反馈?一键提issue告诉我们
发现bug?如果您知道修复办法,欢迎提pr直接参与建设飞桨~
在@后输入用户全名并按空格结束,可艾特全站任一用户