Syliz517/CLIP-ReID

一个关于prompt训练代码的问题

Closed this issue · 2 comments

作者您好,很抱歉打扰你。模型中PromptLearner的forward函数第一句是cls_ctx = self.cls_ctx[label]。这一句我不太明白,以market1501举例子,训练时self.cls_ctx是一个(751,4,512)的向量,这里batchsize=64的时候,这句代码就会把对应label的self.cls_ctx取出来,而第一阶段训练过程的self.cls_ctx在不断更新,那么就会分别对应到这751个人,也就是self.cls_ctx最后结果相当于是每个个体的prompt向量为(4,512),但是到了推理阶段又是新的750个人,那这个是怎么泛化的呢?

抱歉,问的问题可能有点愚蠢,我看了CoCoOp的论文和源码也没有看懂,而且任务也不太一样,希望能得到您的指点,best wishes

你好,prompt只在训练阶段发挥作用,推理阶段只使用image encoder生成的图像特征,不会用到prompt和text encdoer。

明白了,非常感谢!