前言

搭建Slim框架方法请参考这篇文章:搭建迁移训练Slim框架环境_17岁boy的博客-CSDN博客

生成PB文件

转换的方式也很简单,Slim自带了一个graph.py文件,文件存在于models/research/slim/export_inference_graph.py,这个文件可以生成对应包含神经网络算子布局的PB文件,但是没有包含神经元权重这些信息,仅仅包含对应神经网络的网格结构布局(layout),说白了就是生成一个包含神经网络的空壳结构文件,只是没有实际的训练出来的权重数据。

输入如下命令可以开始转换:

命令的参数这里就不介绍了,参数作用可以参考“前言”里的链接

python3.7 models/research/slim/export_inference_graph.py         \
--alsologtostderr                                                \
--dataset_name=flowers                                           \
--model_name=mobilenet_v1_025                                    \
--image_size=96                                                  \
--use_grayscale=True                                             \
--output_file=./flowers_graph.pb

执行完成之后当前目录下会生成一个flowers_graph.pb的文件,这个文件里包含了神经网络的网格结构信息,但是缺少权重信息,所以我们还需要将刚刚生成的ckpt文件里的权重信息提取出来放入到pb文件里去。

这里我们需要Tensor Flow的模块,需要下载Tensor Flow

git clone https://github.com/tensorflow/tensorflow

转换文件在:tensorflow/tensorflow/python/tools/freeze_graph.py,这个文件专门用于将ckpt神经网络里的权重信息copy到pb文件中

输入如下命令开始copy,这一步也叫冻结权重

python3.7 tensorflow/tensorflow/python/tools/freeze_graph.py     \
--input_graph=./flowers_graph.pb                                 \
--input_checkpoint=./train/model.ckpt-0                          \
--input_binar=true                                               \
--output_graph=flowers_frozen.pb                                 \
--output_node_names=MobilenetV1/Predictions/Reshape_1

参数介绍:

参数 作用
--input_graph graph pb文件路径,就是刚刚生成的pb文件
--input_checkpoint 要导出的ckpt路径,这里文件名给到ckpt-0就可以了后面不用给,因为ckpt文件是多个文件存储不同的网格数据,所以给前半部分,后半部分由脚本自动去取
--input_binar 以二进制格式导出,一定要以二进制格式导出,不然遇到了一些\r\0或者一些特殊转义符操作系统会自动编码,导致原数据不对
--output_graph 合并后的pb文件路径
--output_node_names

模型输出层节点名称,这个需要与神经网络有关,在训练时定义的,需要获取输出层里的loss函数相关算子以及输出结构,这一层其实就是你在训练时生成全连接层的那一个Layer名称

运行后报了个错:

ImportError: cannot import name 'py_checkpoint_reader' from 'tensorflow.python.training' (/home/yongde1x/.local/lib/python3.7/site-packages/tensorflow/python/training/__init__.py)

解决方案请参考我的这篇文章:ImportError: cannot import name ‘py_checkpoint_reader‘ from ‘tensorflow.pyth_17岁boy的博客-CSDN博客

然后在执行就生成了对应的frozen.pb文件

Slim生成的ckpt文件转PB文件相关推荐

  1. 【Python4】字符分割识别,车牌识别矫正,移动物检测,Caffe_SSD三字码识别,ckpt文件转pb文件,人脸检测与识别

    文章目录 1.字符分割识别 2.车牌识别矫正 2.1 车牌识别项目安装 2.2 车牌矫正的方法 3.移动物检测 3.1 帧间差分法 3.2 相机捕捉照片 3.3 MindVision品牌的相机 3.4 ...

  2. python 解析pb文件_将tensorflow模型打包成PB文件及PB文件读取方式

    {"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],&q ...

  3. tensorflow | tensorflow实现将ckpt转pb文件

    本博客实现将自己训练保存的ckpt模型转换为pb文件,该方法适用于任何ckpt模型,当然你需要确定ckpt模型输入/输出的节点名称. 目录 tensorflow实现将ckpt转pb文件 一.CKPT ...

  4. tensorflow之pb文件保存与载入

    pb是protocol(协议) buffer(缓冲)的缩写.TensorFlow训练模型后存成的pb文件,是一种表示模型(神经网络)结构的二进制文件,将图中的变量保存成为常量,便于调用,一般无法将pb ...

  5. 深度学习(六)——CNN识别典型地标建筑,并制作pb文件,部署在android studio端,制作app实现该功能

    一.背景 两年前的一个项目,识别典型地标,并对图片进行标记.这里只写一下简单思路,最开始是打算用特征点匹配来做的,可以参考:基于特征点匹配方法--SIFT, SURF, ORB的图像识别 ,后来发现效 ...

  6. tensorflow1.X版本中打印训练好模型各个节点名,并保存在txt,根据输入输出节点保存‘.pb’文件

    tensorflow模型训练好后有几个文件,其中".ckpt"是模型参数数据,".meta"存有网络结构: 如何打印显示网络中各个节点的名称(op),代码如下: ...

  7. php生成图片文件流,php如何将base64数据流文件转换为图片文件?

    2017-03-07 在开发中,自己遇到一个前端在上传图片的时候,使用的base64数据流文件显示的图片. 也就是说 ***image/后面的jpg是我们的图片文件格式,(base64,)后面的很大一 ...

  8. 【tensorflow】生成.pb文件

    Saving, Freezing, Optimizing for inference, Restoring of tensorflow models 在训练完tensorflow模型后,会有三个文件: ...

  9. TensorFlow:将ckpt文件固化成pb文件

    TensorFlow:将ckpt文件固化成pb文件 本文是将yolo3目标检测框架训练出来的ckpt文件固化成pb文件,主要利用了GitHub上的该项目. 为什么要最终生成pb文件呢?简单来说就是直接 ...

最新文章

  1. cacti 安装过程笔记
  2. python入门题目及答案_Python基础自测题答案和基础知识梳理
  3. 终极之战!TensorFlow与PyTorch谁最适合深度学习
  4. SpringBoot中的响应式web应用
  5. sqlserver还原差异备份
  6. 关于解决Windows server系统用户无法远程的问题
  7. Atitit 衡量项目的规模
  8. 源码文件编码问题,导致编译的程序运行错误
  9. 百度UEditor图片上传、SpringMVC、Freemarker、Tomcat、Nginx、静态资源
  10. S32K的flexcan组件can fd使用
  11. Springboot内置Tomcat原理
  12. 那些好玩的生成器网站(三)
  13. 什么是HyperText Transfer Protocol 超文本传输协议
  14. 简述eureka的自我保护模式? 如何配置其自我保护模式
  15. stderr/stdout用法
  16. 个人碰到的前端问题总结及解决方法1
  17. 社区服务器目录迁移实际开发运用
  18. Oracle 错误总结及解决方法
  19. linux 内核list head,Linux内核之list_head.pdf
  20. 使用PayPal补习注册(2/3):PayPal项目的真实注册

热门文章

  1. tcp转串口_单路RS232/422/485串口服务器产品介绍
  2. 大一python考试知识点_Python基础知识点(精心整理)
  3. vscode 分析c代码_vs code(C语言)配置教程
  4. python数据结构与算法第10讲_Python数据结构与算法10:基本结构:练习题1
  5. 执行函数_PyCUDA(1)-执行核函数
  6. 定时器开始时延时了十几秒_第六章--系统滴答定时器
  7. python中else与if的匹配原则是什么_if-else语句中,if和else的配对原则各是什么
  8. nginx强制刷新用户缓存_HTTP 缓存
  9. tek示波器软件_给示波器以云空间,泰克发布突破性的数据协同软件TekDrive
  10. java comparator_Java 集合排序策略接口 Comparator