SDret / Pedestrian-Attribute-Recognition-as-Label-balanced-Multi-label-Learning

Official pytorch implementation of the ICML2024 main conference paper: Pedestrian Attribute Recognition as Label-balanced Multi-label Learning
7 stars 0 forks source link

训练过程疑问 #1

Open Yang-Changhui opened 1 month ago

Yang-Changhui commented 1 month ago

你好,我想问下,您说先代码中的 FRDL 和 GOAT 模块以仅训练基线主干,这部分代码指的是分类头吗;训练的时候先按照rethinking_of_PAR中配置的分类头进行训练,然后再使用你们提供的分类头进行训练吗? 请问,您可以提供已经训练好的模型权重吗?

SDret commented 1 month ago

你好,我想问下,您说先代码中的 FRDL 和 GOAT 模块以仅训练基线主干,这部分代码指的是分类头吗;训练的时候先按照rethinking_of_PAR中配置的分类头进行训练,然后再使用你们提供的分类头进行训练吗? 请问,您可以提供已经训练好的模型权重吗?

你好,主要是两步骤的训练:第一步骤就是在不使用任何re-weighting loss的前提下,训练一个基础的baseline模型(backbone+分类头),这一部分你可以使用我们提供的stage1的config文件+模型结构文件,直接在rethinking的baseline中去跑就能获得,以pa100k为例,这个baseline的大概精度应该是在80%+mA。

第二步骤就是把这个完整的模型按照readme去跑FRDL+GOAT。这两个方法只训练分类头(但是过程中也会涉及用于特征增强方法的backbone的参数更新)。在我们后期期刊扩充工作完成后,会直接提供精度更高的完整模型,暂时使用如上流程,可以快速复现现有文章的结果

Yang-Changhui commented 1 month ago

你好,我现在第一阶段训练的精度为81%,但是第二阶段第一个epoch是76,第二个epoch就到56啦,这个好像不太正常吧; 配置文件使用的是你们提供的pa100k.yaml,训练batch-size改为了32,使用权重为第一阶段所训练的权重,预训练权重为:convnext_base_22k

SDret commented 1 month ago

你好,我现在第一阶段训练的精度为81%,但是第二阶段第一个epoch是76,第二个epoch就到56啦,这个好像不太正常吧; 配置文件使用的是你们提供的pa100k.yaml,训练batch-size改为了32,使用权重为第一阶段所训练的权重,预训练权重为:convnext_base_22k

你好,这个明显是不对的,因为如果浏览我们的代码,你会发现在第一个epoch的时候,我们完全关闭了特征提取器的训练,仅仅只re-train一个新的classifier,这个只更新分类器的收敛过程是十分快速的,在第一个epoch之后,就可以达到78-80的精度了。然后在第二个epoch的时候,特征提取器也仅仅只以很小的学习率在迭代,因此epoch 1的过程仍然在继续,第二个epoch分类器的精度大概就是81左右了。所以建议你看看是不是什么地方出现了bug,比如模型参数的无法对应等。一个比较简单的方式是,在第二epoch的时候,修改代码,仍然让特征提取器固定,这样就是仅仅单纯的re-train一个分类器,一定是可以达到81+的精度的,如果不行,那就是模型的代码load出现了问题。

Yang-Changhui commented 1 month ago

好的,谢谢,我再看下

Yang-Changhui commented 1 month ago

你好,目前训练精度可以达到88%啦,但是为什么训练会越来越慢,第一个epoch半个小时,后期会达到一个多小时,请问会是什么原因呢

SDret commented 1 month ago

你好,目前训练精度可以达到88%啦,但是为什么训练会越来越慢,第一个epoch半个小时,后期会达到一个多小时,请问会是什么原因呢

你好,这个是肯定的,而且前5个epoch速度应该是会越来越慢。因为第一个epoch不会计算backbone的梯度和参数更新;第二个epoch开始会计算bacbone的梯度与参数更新;第4-5个epoch会开始feature在memory bank中反复的write和read,因此第5个epoch之后的训练速度会显著慢于前期

Yang-Changhui commented 1 month ago

好的,谢谢