Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

为什么infer的输出没有对应的label name,看不懂【quick start,classification,one image infer】教程 #1419

Closed
aibama opened this issue Nov 9, 2021 · 10 comments

Comments

@aibama
Copy link

aibama commented Nov 9, 2021

欢迎您使用PaddleClas并反馈相关问题,非常感谢您对PaddleClas的贡献!
提出issue时,辛苦您提供以下信息,方便我们快速定位问题并及时有效地解决您的问题:

  1. PaddleClas版本以及PaddlePaddle版本:请您提供您使用的版本号或分支信息,如PaddleClas release/2.2和PaddlePaddle 2.1.0
  2. 涉及的其他产品使用的版本号:如您在使用PaddleClas的同时还在使用其他产品,如PaddleServing、PaddleInference等,请您提供其版本号
  3. 训练环境信息:
    a. 具体操作系统,如Linux/Windows/MacOS
    b. Python版本号,如Python3.6/7/8
    c. CUDA/cuDNN版本, 如CUDA10.2/cuDNN 7.6.5等
  4. 完整的代码(相比于repo中代码,有改动的地方)、详细的错误信息及相关log

复现了https://github.com/PaddlePaddle/PaddleClas/blob/release/2.3/docs/zh_CN/quick_start/quick_start_classification_new_user.md
30分钟玩转PaddleClas(尝鲜版)
这个demo的输出也是一致:
[{'class_ids': [20, 9, 29, 34, 23], 'scores': [0.03, 0.02606, 0.02249, 0.02051, 0.01818], 'file_name': 'dataset/flowers102/jpg/image_00001.jpg', 'label_names': []}]
为什么没有label_names,scores最高的0.03分数是推荐的分类吗?对应哪个标签?
ps:flowers102的imagelabels.mat,setid.mat都有,
任何帮助都感激不尽,先谢谢大佬老师们百忙解答了

@Gmgge
Copy link

Gmgge commented Nov 9, 2021

有两点建议希望可以帮到你。
1.你没有指定类别映射的字典,可以在config文件进行指定,也就是你命令行参数中yaml文件,例如:
PostProcess:
name: Topk
topk: 5
class_id_map_file: ppcls/utils/imagenet1k_label_list.txt(此处需要指定为你的类别映射字典)
2.scores最高的0.03分数是推荐的分类,类别ids为20,根据此id可以在类别字典中找到标签名,但是你的分数为什么这么低,是你测试了自己的数据吗?

@Z-mingyu
Copy link

Z-mingyu commented Nov 9, 2021

我现在也是这个问题,官方文件里面没有对应的花朵标签文件,好像要自己创建。但是我搞不懂怎么创建,里面有个generate_flowers102_list.py文件,但是运行报错,还是缺文件。

@weisy11
Copy link
Contributor

weisy11 commented Nov 9, 2021

欢迎您使用PaddleClas并反馈相关问题,非常感谢您对PaddleClas的贡献! 提出issue时,辛苦您提供以下信息,方便我们快速定位问题并及时有效地解决您的问题:

  1. PaddleClas版本以及PaddlePaddle版本:请您提供您使用的版本号或分支信息,如PaddleClas release/2.2和PaddlePaddle 2.1.0
  2. 涉及的其他产品使用的版本号:如您在使用PaddleClas的同时还在使用其他产品,如PaddleServing、PaddleInference等,请您提供其版本号
  3. 训练环境信息:
    a. 具体操作系统,如Linux/Windows/MacOS
    b. Python版本号,如Python3.6/7/8
    c. CUDA/cuDNN版本, 如CUDA10.2/cuDNN 7.6.5等
  4. 完整的代码(相比于repo中代码,有改动的地方)、详细的错误信息及相关log

复现了https://github.com/PaddlePaddle/PaddleClas/blob/release/2.3/docs/zh_CN/quick_start/quick_start_classification_new_user.md 30分钟玩转PaddleClas(尝鲜版) 这个demo的输出也是一致: [{'class_ids': [20, 9, 29, 34, 23], 'scores': [0.03, 0.02606, 0.02249, 0.02051, 0.01818], 'file_name': 'dataset/flowers102/jpg/image_00001.jpg', 'label_names': []}] 为什么没有label_names,scores最高的0.03分数是推荐的分类吗?对应哪个标签? ps:flowers102的imagelabels.mat,setid.mat都有, 任何帮助都感激不尽,先谢谢大佬老师们百忙解答了

你好,在dataset/flowers文件夹下有生成list的脚本,如果这两个.mat都有了,可以跑一下:
https://github.com/PaddlePaddle/PaddleClas/blob/release/2.3/dataset/flowers102/generate_flowers102_list.py

@TingquanGao
Copy link
Collaborator

你好!flowes102 数据集的 lable map 文件我们已经上传,请重新下载并解压 https://paddle-imagenet-models-name.bj.bcebos.com/data/flowers102.zip。在预测时,请修改配置文件中的 Infer.PostProcess.class_id_map_file 字段为 ./dataset/flowers102/flowers102_label_list.txt。具体可参考 #1422
如有问题,可继续反馈,谢谢!

@Z-mingyu
Copy link

现在可以了,比较好奇的是为什么精度能达到1.0
屏幕截图 2021-11-10 172427

@aibama
Copy link
Author

aibama commented Nov 11, 2021

现在可以了,比较好奇的是为什么精度能达到1.0 屏幕截图 2021-11-10 172427

为什么精度这么高,我的简直离谱,不知道哪里出错了,是需要预训练模型迁移到预测模型,才预测吗?
预测命令:
python tools/infer.py -c ./ppcls/configs/quick_start/new_user/ShuffleNetV2_x0_25.yaml -o Infer.infer_imgs=
dataset/flowers102/jpg/image_06766.jpg -o Global.pretrained_model=output/ShuffleNetV2_x0_25/best_model
结果:
[{'class_ids': [10, 21, 5, 46, 34], 'scores': [0.01339, 0.013, 0.0125, 0.01245, 0.01245], 'file_name': 'dataset/flowers102/jpg/image_06766.jpg', 'label_
names': ['snapdragon', 'pincushion flower', 'tiger lily', 'marigold', 'alpine sea holly']}]

@Z-mingyu
Copy link

我用的ResNet50训练的

@aibama
Copy link
Author

aibama commented Nov 11, 2021

有两点建议希望可以帮到你。 1.你没有指定类别映射的字典,可以在config文件进行指定,也就是你命令行参数中yaml文件,例如: PostProcess: name: Topk topk: 5 class_id_map_file: ppcls/utils/imagenet1k_label_list.txt(此处需要指定为你的类别映射字典) 2.scores最高的0.03分数是推荐的分类,类别ids为20,根据此id可以在类别字典中找到标签名,但是你的分数为什么这么低,是你测试了自己的数据吗?

非常感谢您的建议,建议对我有用,
像您说的,不知道为什么分数这么低,我是按照这个问题quick_start_classification_new_user
用cpu训练,然后文档最后最后一步出来的结果就是这个精度

@TingquanGao
Copy link
Collaborator

score 0.03 这个不合理,需要确认两个地方:

  1. 是否完成了20个epoch的训练,并且可以看一下训练过程中打印的日志,日志中每个epoch结束时的eval精度是多少;
  2. 在预测时,也就是 python tools/infer.py -c ./ppcls/configs/quick_start/new_user/ShuffleNetV2_x0_25.yaml -o Infer.infer_imgs=dataset/flowers102/jpg/image_00001.jpg -o Global.pretrained_model=output/ShuffleNetV2_x0_25/best_model 时候,所指定的 Global.pretrained_model 路径是否正确,该路径下是否有模型文件:best_model.pdparams

如有问题,可继续反馈,谢谢!

@paddle-bot-old
Copy link

Since this issue has not been updated for more than three months, it will be closed, if it is not solved or there is a follow-up one, please reopen it at any time and we will continue to follow up.
It is recommended to pull and try the latest code first.
由于该问题超过三个月未更新,将会被关闭,若问题未解决或有后续问题,请随时重新打开(建议先拉取最新代码进行尝试),我们会继续跟进。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants