最近由于要将训练好的模型移植到硬件上,因此需要将TensorFlow转为caffe模型。

caffe模型需要两个文件,一个是定义网络结构的prototxt,一个是存储了参数的caffemodel文件。只要生成这两个文件,caffe模型就算转好了。

在模型转换的过程中,我主要参考了https://github.com/lFatality/tensorflow2caffe

首先根据已有的tensorflow模型定义caffe模型需要的网络结构prototxt文件,这个可以参考一些现有经典的prototxt。

然后生成caffe模型需要的模型参数caffemodel。基本过程是:把ckpt中的参数读出来,因为tensorflow和caffe对特征的维度处理不一样,tensorflow中特征的维度是NHWC(Number of filters * Height * Width * Channel),caffe中特征的维度是NCWH(Number of filters * Channel * width * height),所以,需要将参数从NHWC转为NCWH的顺序,然后保存为caffe模型。

具体过程,参考资料中讲得比较清楚,在此不做太多说明。在模型转换的过程中,在batch norm层的转换时碰到了一些问题,在caffe中batch norm中除了存储mean和variance之外还有scale_factor,在测试过程中需要将其设置为1。

下面是其中一层全连接层的转换代码。

net.params['fc15'][0].data[...] = w_15_new
net.params['fc15'][1].data[...] = b_15
net.params['fc15_bn'][0].data[...] = mean_15
net.params['fc15_bn'][1].data[...] = variance_15
net.params['fc15_bn'][2].data[...] = 1
net.params['fc15_scale'][0].data[...] = gamma_15
net.params['fc15_scale'][1].data[...] = beta_15

最新文章

  1. Maven 常用命令, 备忘
  2. Python快速建站系列-Part.Five.1-个人主页及发表文章
  3. Objective-C语言分类与协议
  4. 内存储与外存储(IO流的应用)
  5. FeatureClass的"import"(转换)功能
  6. Windows多线程同步系列之二-----关键区
  7. Ubuntu 16.04安装和配置Sublime Text 3
  8. iis配置,客户端可以下载apk,或者播放视频
  9. WCF配置问题(配置WCF跨域)
  10. ArcGIS API for JavaScript 4.x 本地部署之Nginx法
  11. java课程之团队开发冲刺阶段1.5
  12. Vue2开发大全
  13. 《常见排序算法--PHP实现》
  14. shell编程规范
  15. Installing Jenkins as a Windows service
  16. C#基础——C#中问号的使用
  17. Resharper安装使用手册
  18. Android Timer schedule
  19. C# 使用XPath解析网页
  20. OpenDaylight虚拟租户网络(VTN)详解及开发环境搭建

热门文章

  1. msf、armitage
  2. route -A inet6查看路由 getnameinfo failed [UNKNOWN]解决方案
  3. GC分析中提到的根对象是什么
  4. 【Newtonsoft.Json.dll】操作简单JSON数据
  5. css 三彩loading
  6. DATATable转为json
  7. .net core i上 K8S(五).netcore程序的hostip模式
  8. linux网络NAT配置方式
  9. Django Managers管理器
  10. Java中获取运行代码的类名、方法名