Tensorflow 网络冻结
0. 网络冻结概念:
神经网络模型中存在大量的权重,这些参数在模型训练的过程中通过反向传播来不断更新,所参数使用的是变量。 冻结网络就是将这些变量转换为常量。
Tensorflow的Checkpoint或者SavedModels格式均采用多文件的方式存储,包含了对推理无用的冗余信息。而我们推理时希望模型尽可能的简单。所以就希望冻结(freeze)模型。
Tensorflow提供了冻结脚本。可以把模型转换为冻结网络。
tensorflow/freeze_graph.py at master · tensorflow/tensorflow · GitHub
python3 freeze_graph.py --input_graph=some_graph_def.pb \--input_checkpoint=model.ckpt-8361242 \--output_graph=/tmp/frozen_graph.pb \--output_node_names=softmax
Tensorflow训练的模型可以保存为ckpt格式或SaveModel。其中SaveModel与语言无关。
SavedModel时,将创建一个SavedModel目录,由assets目录,variables目录,saved_model.pb组成。
assets: 用于存放无侧室的辅助信息。
variables:存放变量信息。
saved_model.pb: 存放MaeGraphDef.
在Tensorflow2中,网咯冻结被弃用。但网络冻结的原理依然存在。
在OpenCV3中,加入了DNN模块,实现了一些基本的神经网络Layer。 之后又加入readNetFrom....()来加载模型。 但OpenCV不支持Tensorflow所推荐的SavedModel. 所以若要使用OpenCV DNN加载和推理,则模型首先要Freeze.
Tensorflow 网络冻结相关推荐
- pytorch网络冻结的三种方法区别:detach、requires_grad、with_no_grad
pytorch网络冻结的三种方法区别:detach.requires_grad.with_no_grad 文章目录 pytorch网络冻结的三种方法区别:detach.requires_grad.wi ...
- pytorch训练网络冻结某些层
引言:首先我们应该很清楚地知道冻结网络中的某些层有什么作用?如何进行相关的冻结设置?代码何如呢? 话不多说说,首先我们探讨第一个问题: 1.冻结网络的某些层有什么作用? 这个问题顾名思义就是冻结网络中 ...
- tensorflow导出冻结图模型
导出推理图 python export_inference_graph.py \--alsologtostderr \--dataset_name=autohome \ #自定义数据集的名称--mod ...
- tensorflow 网络修剪 剪枝操作
背景知识 模型剪枝(Model Pruning)是一种模型压缩方法,对深度神经网络的稠密连接引入稀疏性,通过将"不重要"的权值直接置零来减少非零权值数量,其历史可追溯到上世纪 90 ...
- 使用TensorFlow.js进行人脸触摸检测第1部分:将实时网络摄像头数据与深度学习配合使用
目录 起点 将HTML5网络摄像头API与TensorFlow.js结合使用 检测脸部触摸 技术脚注 终点线 下一步是什么?我们是否可以在未经培训的情况下检测到面部触摸? 下载TensorFlowJS ...
- 深度学习框架-tensorflow进阶项目
打算把这篇博客记录完之后,写一篇使用深度学习完成图像风格转换的博客,先立个标志,这篇博客希望能在春节期间完成,年后估计还有的忙. 目录 目录 保存和载入模型,使用谷歌的图像识别网络成立以来,V3进行图 ...
- 用TensorFlow训练一个物体检测器(手把手教学版)
TensorFlow内包含了一个强大的物体检测API,我们可以利用这API来训练自己的数据集实现特殊的目标检测. 作者软硬件环境配置:CPU: i7-6800k (不重要,主流的CPU均可) OS: ...
- 简单完整地讲解tensorflow模型的保存和恢复
http://blog.csdn.net/liangyihuai/article/details/78515913 在本教程主要讲到: 1. 什么是Tensorflow模型? 2. 如何保存Tenso ...
- Tensorflow:如何保存/恢复模型?
在Tensorflow中训练模型后: 您如何保存经过训练的模型? 您以后如何还原此保存的模型? #1楼 对于TensorFlow版本<0.11.0RC1: 保存的检查点包含模型中Variable ...
最新文章
- WMI技术介绍和应用——查询桌面信息
- lua 访问oracle,lua链接oracle解决方法与步骤
- C++ Public, Protected, Private
- 17、Java Swing Timer:计时器组件
- 2.1、spring属性注入-Set方法注入
- 【☆】javascript数据类型拾遗
- QT的QAudioProbe类的使用
- linux下安装配置oracle
- 7-135 二叉搜索树的2层结点统计
- python写个验证码
- Redis 发布/订阅模式
- Python从菜鸟到高手(1):数字的奥秘
- promise.all是并发执行吗_你真的会用Volatile了吗?
- VC模拟鼠标的两种方式(SendMessage、mouse_event)
- OpenAI公开Dota 2论文:胜率99.4%,「手术」工具连续迁移训练
- 关于相机(摄相头)的选用
- 美学原理-杨宁课堂笔记
- 惊!用python将数据存到txt文件中发现顺序乱排或缺斤少两
- 4.19 C语言练习(已有一个已正序排好的9个元素的数组,今输入一个数要求按原来排序的规律将它插入数组中)
- Ant UI 的表单校验
热门文章
- 职称计算机考试系统2010'天宇考王10.0'(盒装)火爆销售!
- 1160: 6001 第几天?
- 用ExternalInterface实现Flex与外部容器交互
- 什么是防火墙的入站规则和出站规则
- 写春联:你写上联,AI写下联_副本
- ostringstream的用法
- 一加10T什么时候发布 一加10T配置如何
- [Android4.4.3] Nubia Z5S Mokee4.4.3 RC2.0 by syhost
- zephyr驱动介绍
- 【Java数据结构】实现双向链表