Closed JINzezhong7 closed 10 months ago
历史遗留问题哈,最开始在基于tdnn的xvec paper中,也是两层的embedding层,embed a和embed b,所以我们最开始在resnet中也支持了两层的结构,后面实验结果发现其实差别不是很大
谢谢回答,请问你在dino训练的过程中resnet和ecapa的时间接近吗。我发现我使用resnet34明明模型比ecapa小但是显存确占很多且训练比ecapa慢很多
只看模型大小意义不大哈,resnet是二维卷积结构,ecapa是一维卷积,所以参数差不多前提下,resnet计算量可能更大
关于第一个问题除了JiJiJiang 提到的历史原因外,还有一个是我们其实发现如果用margin-based softmax 的时候只保留一层直接对embedding 优化比较好,也适合后续的打分;softmax 的话两层取 embed_a 可能更适合plda 打分一些。
第二个原因也正如 JiJiJiang 所述,根据我们之前测过的情况来看,大概的占用对比如下: | Architecture | Params (M) | Memory (G) | MACs (G) |
---|---|---|---|---|
ECAPA-TDNN(C1024) | 14.85 | 0.354 | 21.27 | |
ResNet34 | 6.700 | 1.054 | 36.75 |
非常感谢您的代码,我想问一下resnet model中,为什么会有一个two_emb_layer的参数,为什么会返回两个值。我印象中resnet返回embedding就OK了 这样做的意义是什么。期待您的回答