FastReID笔记

在用fastReID做东西,做到哪儿写到哪儿。

apex安装

pip安装一直失败,所以直接python setup.py install,听说会牺牲一定的性能。

数据

FastReID定义的Dataloader把数据封装成一个字典

return {
            "images": img,
            "targets": pid,
            "camids": camid,
            "img_paths": img_path,
        }

数据的解包和归一化在baseline类里面处理,所以最好别直接在主函数里替换model。

训练

训练部分的代码被封装在train_loop和defaults两个文件里。调试的时候,堆栈显示DefaultTrainer调用的是AMPTrainer的run_step(),里面包含前向和反向的代码。

模型

build_model好像只提供了一个BaseLine类,里面封装了对上面数据的处理和backcone,head。

fastreid封装的很好,不太想动他的源码部分。要把backbone改成Darts的训练代码,我不太会改,直接继承了BaseLine,改了下__init__,反正能用。

其实应该调nn.module的构造函数,再把init重写一遍的。

class NasBaseline(Baseline):
    def __init__(self,cfg):
        super().__init__(cfg)

        # backbone
        genotype=PCDARTS
        self.backbone=Network(32,1000,14,0,genotype)

 

你可能感兴趣的:(python)