insightface训练mobilenet的时候模型太大

导读

在使用insightface训练mobilefacenet的时候,训练完成之后模型还有22.5M,而官方训练的模型只有4.7M左右,训练的命令如下:

 CUDA_VISIBLE_DEVICES='0,1' python -u train_softmax.py --network y1 --ckpt 2 --loss-type 4 --margin-s 128 --lr-steps 120000,180000,210000,230000 --emb-size 512 --per-batch-size 150 --data-dir ../data/faces_ms1m_112x112 --pretrained ../models/MobileFaceNet/model-y1-softmax,20 --prefix ../models/MF/model-y1-arcface

上面的命令是用来训练一个mobiefacenet使用arcLoss的模型,最终保存的模型有22.5M,如果你的类别多这个模型会更大,下面介绍如何来缩减模型的size。

缩减模型的大小

  • 删除最后一层的全连接层

因为人脸识别其实训练的是一个分类模型,所以类别越多最后一层的全连接层越大参数越多,导致模型越大。然而在实际应用和部署模型的时候我们并不需要用到最后一层全连接层,所以我们通过删除最后一层全连接层的参数可以减少模型的size。通过insighface/deploy/model_slim.py修改一下模型的保存路径就可以了,最终生成的模型是删除了最后一层全连接的。

  • 将version-output改为GDC

在训练的命令后面加上一个version-output参数设置,默认使用的是E,代码如下:

--version-output GDC

参考:https://github.com/deepinsight/insightface/issues/454

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

修炼之路

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值