年龄预测(SSRNet)模型转换(Keras转Caffe)

原文链接:https://blog.csdn.net/lwplwf/article/details/84292743

SSR-Net: A Compact Soft Stagewise Regression Network for Age Estimation
paper:https://github.com/shamangary/SSR-Net/blob/master/ijcai18_ssrnet_pdfa_2b.pdf

关于SSR-Net解析可参考:SSR-Net(Soft Stagewise Regression Network) ——年龄预测

1.SSRNet模型Demo

(1)源码https://github.com/shamangary/SSR-Net
(2)开发环境

TensorFlow – 1.10.1
Keras – 2.2.4
Python – 3.5

(3)源码文件结构
/SSR-Net-master/demo/目录下:
-TYY_demo_ssrnet_lbp_webcam.py – demo脚本
-lbpcascade_frontalface_improved.xml – OpenCV人脸检测用

-SSRNET_model.py – SSRNet模型解析文件
在/SSR-Net-master/pre-trained/morph_gender_models/ssrnet_3_3_3_64_1.0_1.0/目录下:
-ssrnet_3_3_3_64_1.0_1.0.h5 – 模型结构及权重文件

2.SSRNet转换到Caffe

(1)源码https://github.com/lwplw/ssrnet2caffe

(2)开发环境

TensorFlow – 1.10.1
Keras – 2.2.4
Python – 3.5
Caffe

(3)源码文件结构:
     1、SSRNET_model.py – SSRNet模型解析文件,来自上面SSRNet源码,做了修改:
           删掉了def merge_age(x,s1,s2,s3,lambda_local,lambda_d):函数,并修改网络输出直接为9个参数,age的具体计算放在网络外的demo中,具体见源码。
     2、convert_ssrnet.py – 转换脚本
     3、keras2caffe.py – keras层转换到Caffe层的具体实现
     4、ssrnet.caffemodel – 转换得到的Caffe下模型权重文件
     5、ssrnet.prototxt – 转换得到的Caffe下模型结构文件
     6、ssrnet_3_3_3_64_1.0_1.0.h5 – keras下的模型结构和权重文件

(4)其它说明
由于TensorFlow和Caffe的机制不同,在poolling层的源码实现上,Caffe有对结果向上取整的操作,最终导致TF下和Caffe下特征图的大小不一致,模型参数对应不上。

解决方案
1)修改Caffe源码,并重新编译。(选择该方案,转换完成)
Reference:https://blog.csdn.net/lwplwf/article/details/82418110
2)在Caffe下重新训练SSRNet。

3.SSRNet网络结构图

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值