PaddleVideo魔改指南(1)(流程向非干货)
收藏
这不是在参加基于飞桨实现花样滑冰选手骨骼点动作识别大赛,baseline是基于PaddleVideo的,那免不了要对其进行魔改。(时长耗尽了,正好来写写总结)
PaddleVideo是基于注册机制构建的训练框架,每个模块都有独立的类,通过.yaml文件进行连接和配置。
那,我第一反应是先魔改模型结构,那么改模型结构需要修改哪些呢?
PaddleVideo的模型主要由backbone、head组成,需要注意的是loss计算相关代码是与head绑定的,具体细节如下:
Backbone
backbone的位置在 paddlevideo/modeling/backbones下
以agcn.py为例
除了常规的模型结构外,在整体模型前需要添加 @BACKBONES.register()注册。
除此之外需要在同目录的__init__.py下加入
from .agcn import AGCN
并在__all__ 这个数组里添加'AGCN',即可在.yaml文件中引用并导入agcn这个backbone。
Head
head 主要有两个关键的地方,一个是head的模型,一个是loss的定义,主要关注两个文件:base.py 和 具体的_head.py文件如stgcn_head.py。
base.py是所有head的基础文件主要定义了loss以及acc的计算,以对象函数的方式进行调用,可以自由添加和修改,如果想对loss或者学习机制修改的可以关注一下这个文件
xxxx_head.py文件是具体的head,其注册过程跟Backbone是一致的,但是要继承base中的BaseHead。另外修改时注意head的forward和Backbone的forward是直接相连的所以要保证backbone的输出和head输入是一致的。
0
收藏
请登录后评论
膜拜大佬