zhongyy/Face-Transformer

为什么不直接使用 insightface项目

eeric opened this issue · 11 comments

eeric commented

为什么不直接在insightface项目上用Vit/Vits模型替换resnet模型,开始训练?
读取数据,加载模型,验证等代码和insightface一样,而loss代码不同呢?

朋友你好,我从2018年就开始跟insightface的项目了,健康和过客做得真的很好,一步步发展到今天。当时有一阵子为了实现一些功能没办法在mxnet上继续做,所以就跟了一个pytorch的code。因为transformer的实现主要是用了timm的库,所以就在那个之前torch的那个基础上攒起来的,其实我想在insightface的torch版本上加vit模型差别也都不大的,可能我就是选择自己最方便的方式了。至于用cosface是因为它更容易收敛哦,我一般试新模型经常都是softmax/cosface先开始。

eeric commented

感谢回复,“其实我想在insightface的torch版本上加vit模型差别也都不大的”,这个原版insightface,我试验transformer基本都有问题,可以参见问题:
deepinsight/insightface#1716
deepinsight/insightface#1710

感谢回复,“其实我想在insightface的torch版本上加vit模型差别也都不大的”,这个原版insightface,我试验transformer基本都有问题,可以参见问题: deepinsight/insightface#1716 deepinsight/insightface#1710

你有没有把optimizer换掉呢?transformer的话用sgd没法收敛哦,我用了timm实现的adamw。

eeric commented

感谢回复,“其实我想在insightface的torch版本上加vit模型差别也都不大的”,这个原版insightface,我试验transformer基本都有问题,可以参见问题: deepinsight/insightface#1716 deepinsight/insightface#1710

你有没有把optimizer换掉呢?transformer的话用sgd没法收敛哦,我用了timm实现的adamw。

有的,若用adamw或adam,就会loss计算出错。

为什么不直接在insightface项目上用Vit/Vits模型替换resnet模型,开始训练? 读取数据,加载模型,验证等代码和insightface一样,而loss代码不同呢?

你好,你最后的修改成功了没,我加入到insightface中后,训练的验证集精度都是0.5,你碰到过这个问题没? @eeric

eeric commented

insightface跑不成transformer
我是在Face_transformer项目里面跑的,可以替换一些最新transformer模型

insightface跑不成transformer 我是在Face_transformer项目里面跑的,可以替换一些最新transformer模型

为啥跑不了呀,我看insightface里面有torch的代码呀?vit的代码也是torch的,应该很丝滑才对吧

为什么不直接在insightface项目上用Vit/Vits模型替换resnet模型,开始训练? 读取数据,加载模型,验证等代码和insightface一样,而loss代码不同呢?

你好,你最后的修改成功了没,我加入到insightface中后,训练的验证集精度都是0.5,你碰到过这个问题没? @eeric

我跟你一样,loss是0,精度是0.5

eeric commented

这个是2021年的老版本了,当时是不行的。到了2022年3月-4月版本开始,insightface项目都可以直接训练vit类型的transformer模型了,用作者提供的样例,可以直接训练,效果不错。

最近替换了insightface的backbone为vit,训练总是出现问题,替换了优化器为adamw,有时候训练的loss直接就为0,模型根本就不收敛,请问你在insightface上训练vit成功了吗,具体参数是怎么设置的。

eeric commented

pull 最新insightface项目
地址:https://github.com/deepinsight/insightface/tree/master/recognition/arcface_torch
页面有介绍如何训练vit模型。