chenhaoxing / CPR

This repository is the code of our paper "Conditional Prototype Rectification Prompt Learning".
3 stars 0 forks source link

Accuracy on Aircraft #1

Closed mobulan closed 5 months ago

mobulan commented 5 months ago

非常感谢你精彩的工作。不过我按照readme中提供的代码,按照默认设置进行复现fgvcaircraft时,结果与文中并不一致。在使用Custom data sampler base 时,1shot 和16shot的结果分别为17.23和28.39;在使用Custom data sampler new 时,1shot 和16shot的结果分别为19.86和24.96。请问是有什么设置需要调整的吗。我注意到默认的设置只训练了10epochs,是因为这个原因吗?

此外,我还发现一些bug,例如在base.py中第208行没有实现,我只能与210行一起注释掉。在TipAdapter.py中第28行,我将tab换为4个空格。

以下是原始实验结果: CPRresults.md

chenhaoxing commented 5 months ago

Hi,你跑的是base2new还是fsl任务呢。可能要改一下跑的轮次,ViT-B对应的是10epoch,resnet50是200。 208行的我看一下,我修改下。

获取 Outlook for iOShttps://aka.ms/o0ukef


发件人: Mobulan @.> 发送时间: Monday, June 3, 2024 7:06:44 PM 收件人: chenhaoxing/CPR @.> 抄送: Subscribed @.***> 主题: [chenhaoxing/CPR] Accuracy on Aircraft (Issue #1)

非常感谢你精彩的工作。不过我按照readme中提供的代码,按照默认设置进行复现fgvcaircraft时,结果与文中并不一致。在使用Custom data sampler base 时,1shot 和16shot的结果分别为17.23和28.39;在使用Custom data sampler new 时,1shot 和16shot的结果分别为19.86和24.96。请问是有什么设置需要调整的吗。我注意到默认的设置只训练了10epochs,是因为这个原因吗?

此外,我还发现一些bug,例如在base.py中第208行没有实现,我只能与210行一起注释掉。在TipAdapter.py中第28行,我将tab换为4个空格。

以下是原始实验结果: CPRresults.mdhttps://github.com/user-attachments/files/15532876/CPRresults.md

― Reply to this email directly, view it on GitHubhttps://github.com/chenhaoxing/CPR/issues/1, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AN6YSKT4WZX2QOJGYZLRVTTZFRE4JAVCNFSM6AAAAABIWIUSMKVHI2DSMVQWIX3LMV43ASLTON2WKOZSGMZTAOBVGIZTSNI. You are receiving this because you are subscribed to this thread.Message ID: @.***>

chenhaoxing commented 5 months ago

你好,我看utils里的line 75是实现了的。你看看是不是运行方式有问题。

mobulan commented 5 months ago

我在调用到line75时,因为我这的新项目的cache文件夹中没有/text_weights_cupl_t.pt,跳转至else分支,else分支的三个参数没有传进来报错,我将pre_load_clip_weights对应的参数传进来,进入clip_classifier函数,其一样要检查/text_weights_cupl_t.pt,此时else分支提示没有实现

chenhaoxing commented 5 months ago

收到。我明天处理下,

获取 Outlook for iOShttps://aka.ms/o0ukef


发件人: Mobulan @.> 发送时间: Monday, June 3, 2024 7:24:09 PM 收件人: chenhaoxing/CPR @.> 抄送: chx_ant @.>; Comment @.> 主题: Re: [chenhaoxing/CPR] Accuracy on Aircraft (Issue #1)

我在调用到line75时,因为我这的新项目的cache文件夹中没有/text_weights_cupl_t.pt,跳转至else分支,else分支的三个参数没有传进来报错,我将pre_load_clip_weights对应的参数传进来,进入clip_classifier函数,其一样要检查/text_weights_cupl_t.pt,此时else分支提示没有实现

― Reply to this email directly, view it on GitHubhttps://github.com/chenhaoxing/CPR/issues/1#issuecomment-2144946851, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AN6YSKVOPVXTCCJGLSDBDLLZFRG5TAVCNFSM6AAAAABIWIUSMKVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDCNBUHE2DMOBVGE. You are receiving this because you commented.Message ID: @.***>

chenhaoxing commented 5 months ago

你好,我已经将pre_load_clip_weights对应的权重更新到weights文件夹。 但不是这个原因导致的你的性能下降,我看过你的log。有几个点需要注意下:

  1. base2new任务默认是16-shot,而不是1-shot。
  2. 我发现传上去的版本确实有问题,这是做ablation的。需要将CPR.py的第19行,“a photo of a”替换为“”。我已对应修改,你再试试呀,有问题再联系。
mobulan commented 5 months ago

非常感谢你的回复。仅在当前设置下,vit主干实验也能达到文中报告精度,我再试试修改后的代码。 此外我还有个困惑,本文利用了无标记的样本所提供的信息,用于指导已知类样本的学习,这是否会涉及到不公平对比?毕竟这样的做法在设定上有些倾向于半监督学习,而对比方法通常采用的都是inductive设定。

chenhaoxing commented 5 months ago

非常感谢你的回复。仅在当前设置下,vit主干实验也能达到文中报告精度,我再试试修改后的代码。 此外我还有个困惑,本文利用了无标记的样本所提供的信息,用于指导已知类样本的学习,这是否会涉及到不公平对比?毕竟这样的做法在设定上有些倾向于半监督学习,而对比方法通常采用的都是inductive设定。

这种方式更像是VLM领域的一些TTA工作。当然我们的方法也可以扩展至其他数据集,例如用LAION-5B来做检索。你可以参考下其他的一些TTA-VLM的相关工作:

mobulan commented 5 months ago

根据最新的代码,我已经复现出Aircraft的结果,非常感谢你耐心的解答。有时间我会再对这些相关工作做进一步调研。 不过我还有个小问题,为什么训练的batchsize为1呢,能否调整的大一些?

chenhaoxing commented 5 months ago

根据最新的代码,我已经复现出Aircraft的结果,非常感谢你耐心的解答。有时间我会再对这些相关工作做进一步调研。 不过我还有个小问题,为什么训练的batchsize为1呢,能否调整的大一些?

大一些可以的,这个是follow之前的工作CoOp、CoCoOp,应该是学text embedding的时候更stable。