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

关于ACC和R@5的问题 #297

Open
EasonTuT opened this issue Apr 16, 2024 · 13 comments
Open

关于ACC和R@5的问题 #297

EasonTuT opened this issue Apr 16, 2024 · 13 comments

Comments

@EasonTuT
Copy link

验证集和训练集的ACC都达到了80+,但是在测试集和验证集中R@5评分只有18分和9分,请问是什么问题呢?应该如何解决呢

@ChesonHuang
Copy link

给下你的valid_texts.jsonl中的2-3条数据看看,我之前遇到这样的问题是,在json里面,一个文本只对应了少部分数据,但实际一个文本应该对应所有数据。例如,在验证集中,如果你的一个文本,对应了 5 个图片,那么这5个图片都要放在image_ids里面,你可以看实现逻辑:即 ground_truth_ids里面的数据少了,所以导致recall分数低
image

@EasonTuT
Copy link
Author

@ChesonHuang 我get到你的意思,但是我用的数据集中一张图片只对应一个image_ids,train、valid和test都是如此,而在fitfune过程中ACC是显示80多的,我用R@1计算出来更低只有0.几分,下面是我的训练记录和对应的json情况。
这是微调记录:
image
下面是valid的json:
image
下面是train的json:
image
我不知道什么原因导致如此ACC和R@间的分数相差如此之大

@keminze
Copy link

keminze commented Apr 16, 2024

验证集和训练集的ACC都达到了80+,但是在测试集和验证集中R@5分只有18分和9分,请问是什么问题呢?应该如何解决呢?

请问你的参数设在是怎样的

@EasonTuT
Copy link
Author

@ChesonHuang @keminze
image
这是我运行脚本得出来的召回分数
是用微调后的权重的

@EasonTuT
Copy link
Author

@keminze
image

@timecoderr
Copy link

@ChesonHuang @keminze image 这是我运行脚本得出来的召回分数 是用微调后的权重的

你好,我遇到了同样的问题,请问您发现错误 解决了吗? 感谢!

@ChesonHuang
Copy link

@ChesonHuang @keminze image 这是我运行脚本得出来的召回分数 是用微调后的权重的

你好,我遇到了同样的问题,请问您发现错误 解决了吗? 感谢!

建议你在 cn_clip/eval/evaluation.py 或 cn_clip/eval/evaluation_tr.py, 打印下 ground_truth_ids 和 top10_pred_ids 看看,或许它可以告诉真相

@hkxxxxx
Copy link

hkxxxxx commented Apr 21, 2024

Snipaste_2024-04-21_18-46-40
dan'qi'shi但其实我输出后也就是这样,应该没问题吧,因为他标签都是一对一的

@ChesonHuang
Copy link

ChesonHuang commented Apr 21, 2024

Snipaste_2024-04-21_18-46-40 dan'qi'shi但其实我输出后也就是这样,应该没问题吧,因为他标签都是一对一的

有问题的,你的图片id是: 140010041888, 但你模型预测的top10里面没有这个图片id,所以r@x都是0;说明你训练的模型预测不准确

update: 还有一种可能是,输入的图片必须存在valid数据集对应文本的image_ids里面,但140010041888这个图片并没有在image_ids中

@hkxxxxx
Copy link

hkxxxxx commented Apr 21, 2024

嗯,应该是模型训练的问题,查140010041888上面是有的,不然他就会报错了

@keminze
Copy link

keminze commented Apr 22, 2024

@ChesonHuang @keminze image 这是我运行脚本得出来的召回分数 是用微调后的权重的

你的训练集和验证集的文本处理方式是一样的吗

@hkxxxxx
Copy link

hkxxxxx commented Apr 23, 2024

是一样的,我一起处理的

@hkxxxxx
Copy link

hkxxxxx commented Apr 23, 2024

所以他这个Acc到底是怎么计算的?是什么的准确率?Acc和R@N之间有必然的联系吗

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