Notetensorflow freeze model
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Notetensorflow freeze model相关的知识,希望对你有一定的参考价值。
参考技术A 一、freeze加载模型文件,从checkpoint文件读取权重数据初始化到模型里的权重变量,将权重变量转换成权重常量,通过指定的输出节点将没用于输出推理的Op节点从图中剥离掉,再重新保存到指定的文件里
1.tf.train.write_graph()以及tf.train.saver()生成pb文件和ckpt文件
bazel-bin/tensorflow/python/tools/freeze_graph --input_graph=/path/to/graph.pb --input_checkpoint=/path/to/model.ckpt --output_node_names=output/predict --output_graph=/path/to/frozen.pb
2.把训练好的权重变成常量之后再保存成PB文件
output_graph_def = convert_variables_to_constants(sess, sess.graph_def, output_node_names=['output/predict'])
with tf.gfile.FastGFile('model/CTNModel.pb', mode='wb') as f:
f.write(output_graph_def.SerializeToString())
二、quant
1.网络参数是按层组织,每层数值都在同一数量级,即范围相差不大,如[-6.0,4.0],有大量论文研究表明确认值最大和最小后每层数据使用8bit定点化量化已可以很好满足推断计算。量化最直接结果是参数存储空间要求变小,经验值是减少约3/4;减少内存读取数据量,节省带宽;使用simd进行计算加速,如果有dsp进行8bit加速计算节能,使得移动设备上进行推断计算变得更强大有效。
bazel-bin/tensorflow/tools/quantization/quantize_graph \
--input=/tmp/classify_image_graph_def.pb \
--output_node_names="softmax" --output=/tmp/quantized_graph.pb \
--mode=eightbit
2.可删除给定的一组输入和输出不需要的所有节点,该脚本还进行了一些其他优化,可以帮助加快模型,例如将显式批量归一化操作合并到卷积权重中以减少计算次数。这可以根据输入型号提供30%的速度
python -m tensorflow.python.tools.optimize_for_inference \
--input = tf_files / retrained_graph.pb \
--output = tf_files / optimized_graph.pb \
--input_names =“input”\
--output_names = “final_result”
cx_Freeze:主脚本中的 Python 错误。 Python 3.6 + cx_Freeze
【中文标题】cx_Freeze:主脚本中的 Python 错误。 Python 3.6 + cx_Freeze【英文标题】:cx_Freeze: Python error in main script. Python 3.6 + cx_Freeze 【发布时间】:2017-04-06 08:54:45 【问题描述】:我在使用cx_Freeze-5.0.1-cp36-cp36m-win32.whl
将 python 3.6 编译为 exe 时遇到问题,请帮助我。
我已经从http://www.lfd.uci.edu/~gohlke/pythonlibs/#cx_freeze
安装了Cx-freeze
然后我启动 cmd 并运行以下命令:
python setup.py build
setup.py
文件如下:
import sys
from cx_Freeze import setup, Executable
setup(
name = "Check Telemetry",
version = "0.1",
description = "Check Telemetry",
executables = [Executable("excel_to_sqlite_xlrd-light.py", base = "console")])
然后我有这样的事情:
但如果我运行我的 .exe 文件,我会遇到以下问题:
以下有错误的行的屏幕截图:
你有什么想法吗? 谢谢!
【问题讨论】:
【参考方案1】:似乎程序没有找到依赖项所以添加这个(你必须添加缺少的依赖项(在这个例子中我放了os):
# Dependencies are automatically detected, but it might need fine tuning.
build_exe_options = "packages": ["os"], "excludes": ["tkinter"]
然后:
setup( name = "Check Telemetry",
version = "0.1",
description = "Check Telemetry",
options = "build_exe": build_exe_options,
executables = [Executable("excel_to_sqlite_xlrd-light.py", base = "console")])
【讨论】:
感谢您的回答!你能告诉我我应该把这个字符串放在哪里,在哪个文件中? -> build_exe_options = "packages": ["os"], "excludes": ["tkinter"] 当然,在 setup 调用之前的 setup.py 文件中。有时 Cx-freeze 无法识别该库,您必须指定。 :) 请投票给答案 :) 非常感谢!我会试试!当然,我会投票给答案,但我不能立即投票,因为我刚刚注册并且声望不到 15以上是关于Notetensorflow freeze model的主要内容,如果未能解决你的问题,请参考以下文章
cx_Freeze 不工作 - 没有名为 cx_Freeze 的模块
cx_Freeze:主脚本中的 Python 错误。 Python 3.6 + cx_Freeze
cx_Freeze 可执行文件在使用 multiprocessing 和 freeze_support 时运行多个任务
cx_freeze 错误“cx_Freeze.freezer.ConfigError:没有名为控制台的基础”