Closed ziyaxuanyi closed 2 years ago
这个地方是使用了GTC策略,阻止梯度往前传,也即不更新backbone部分的梯度
那如果从零开始训练,初始化网络后,backbone部分就不再更新呢,只训练更新CTC head和SAR head部分参数?
SAR head 部分会更新backbone的梯度,具体可以参考GTC的策略哈
也就是说,backbone部分参数的训练依赖于SAR head,并不受CTC head的影响,只受attention这支任务的训练。 本质上来讲采用两个head,这是个多任务训练,为什么不整体上一起训练,是因为训练很难收敛吗?还是单纯因为这样做比同时一起训练来的结果要好呢?
GTC的思想就是这样,训练效果也会好一些,你可以试一下整体一起训练
好的,感谢回答!
注意到代码中SVTR部分,训练使用了use_guide,将张量属性stop_gradient置为True,不计算梯度,这是什么意思,能解释一下这么做的理由吗?