PaddleVideo魔改指南(1)(流程向非干货)
收藏
快速回复
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
收藏
回复
全部评论(1)
时间顺序
trainer
#2 回复于2021-10

膜拜大佬

0
回复
在@后输入用户全名并按空格结束,可艾特全站任一用户