首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

深度学习算法优化系列六 | 使用TensorFlow-Lite对LeNet进行训练时量化

然后训练得出.pb文件,放到指令TFLiteConverter里去实现第二步完整量化,最后生成tflite模型,实现int8计算。...将checkpoint模型保存为pb模型代码如下: # 将存储了伪量化信息freeze pb文件转换成完全量化tflite文件,可以看见量化完之后文件内存基本减小到1/4 def convert_to_tflite...源码也放github了,有兴趣的话可以帮忙看看是不是代码问题。...在测试时候模型掉了大约四个点,我们可以大概想一下为什么这里精度掉得还是比较多,可能对于Mnist数据集来说LeNet已经算是一个大模型了,所以训练后量化比训练时量化表现更好。...总结 这两天测试了一下TFiteint8量化可以看出来量化确实是有效果,并且tflite也确实可以实现加速,况且这是在pc端测试,放到设备端加速应该会更明显吧。

1.6K20

如何将自己开发模型转换为TensorFlow Lite可用模型

继Apple发布CoreML之后,Google发布了TensorFlow Lite开发者预览版,这是TensorFlow Mobile后续发展版本。...从一个简单模型开始 首先,想选择一个未经过预先训练或转换成.tflite文件TensorFlow模型,理所当然选择使用MNIST数据训练简单神经网络(目前支持3种TFLite模型:MobileNet...(另外一个好处是,如果您共享模型没有共享训练脚本,开发人员可以研究模型并快速识别图形输入输出)。 开始猜想Logit层是输出层,但那不是我们想要获得推断结果层。...这里有完整mnist.py文件供您参考。 要训练模型,在模型项目根目录下请运行以下命令。在17年Macbook Pro上,这需要约1-2小时。...在我们例子中,它是model.ckpt-48000 Input binary选项是false,因为我们传递是.pbtxt文件不是.pb(在这种情况下,它应该是true)。

3K41
您找到你想要的搜索结果了吗?
是的
没有找到

深度学习算法优化系列五 | 使用TensorFlow-Lite对LeNet进行训练后量化

今天主要是利用tflite来跑一下这个量化算法,量化一个最简单LeNet-5模型来说明一下量化有效性。tflite全称为TensorFlow Lite,是一种用于设备端推断开源深度学习框架。...中文官方地址放附录了,我们理解为这个框架可以把我们用tensorflow训练出来模型转换到移动端进行部署即可,在这个转换过程中就可以自动调用算法执行模型剪枝,模型量化了。...关于Lenet可以详细看一下之前推文,地址如下:卷积神经网络学习路线(六)| 经典网络回顾之LeNet 同时在LeNet类中已经定义好了损失函数和优化器,所以接下来我们就可以直接启动训练啦。...所以这里选择使用savedModel来保存模型,这个模型可以直接转换为tflite,在转换工程中调用相关代码进行量化。训练完成后会在checkpoint文件夹下生成这4个文件。 ?...也说明了训练后量化有效性。今天暂时就讲到这里了,把源码放到github上了,地址见附录。

1.5K10

tf.lite

即添加(arg0,指数= 1);add(arg1, index=0)将使最终存根为stub_func(输入[arg1, arg0],输出=[]),不是基于默认调用顺序排序。...可用于评估转换器优化代表性数据集。例如,转换器可以使用这些例子来估计(最小,最大)范围校准模型输入。这可以允许转换器量化转换后浮点模型。...从具有量化意识训练输入模型到完全量化模型信号转换,然后推论_input_type默认为tf.uint8。在所有其他情况下,推论_input_type默认为tf.float32。必须{特遣部队。...从具有量化意识训练输出模型到完全量化模型信号转换,然后推论_output_type默认为tf.uint8。在所有其他情况下,推论_output_type必须是tf。否则将抛出一个错误。...不是优化。布尔值,指示是否对转换后浮点模型权重进行量化。模型大小将会减小,并且会有延迟改进(以精度为代价)。

5.2K60

【云+社区年度征文】TinyML实践-2:How TinyML Works?

对于Tensorflow最大需求是能够在桌面系统中训练并运行模型,这种需求影响了很多设计决策,例如为了更低延迟和更多功能增加可执行文件大小。...云端服务器上,RAM以GB为衡量单位,存储空间以TB为单位,几百兆字节二进制文件通常不是问题。...它还不支持TF主线中可用全部数据类型(例如double)。此外,TFLite也不支持一些使用次数比较少算子。...简单说,TFLiteTF最大不同,它只关注推断。 TF-Lite for Microcontroller是TFLite在mcu移植版本(子系统),复用TF-Lite框架。...所以,tflm干脆要求传入一个固定大小内存空间,让框架在初始化时进行临时分配(如果太小,tflite会马上报错,再调整较大空间),除此之外执行推断将不会有进一步内存分配需求,因此可以调用不会有堆碎片或内存错误微信啊

1.7K52

【Ubuntu】Tensorflow对训练后模型做8位(uint8)量化转换

本文链接:https://blog.csdn.net/huachao1001/article/details/101285133 1 量化为PB格式模型 从官方提供tensorflow版本与编译工具版本中选择...bazel版本下载,各个版本Tensorflow与各个编译环境映射表如下。...TFLite格式模型 除了使用transform_graph工具对pb模型进行量化转换外,还可以使用TFLite对模型进行量化处理,但是需要注意是,使用TFLite转换得到量化模型是tflite结构...,意味着只能在tflite中运行(大部分场景为移动端),可以参考官网详细使用步骤:【https://www.tensorflow.org/lite/performance/post_training_quantization...】 一个简单示例如下: import tensorflow as tf converter = tf.lite.TFLiteConverter.from_saved_model(saved_model_dir

1.7K30

跨越重重“障碍”,从 PyTorch 转换为了 TensorFlow Lite

本文作者分享了他在 PyTorch 到 TensorFlow 之间转换经验,或许可以给我们一些启发。...简 介 最近不得不将深度学习模型(MobileNetV2 变体)从 PyTorch 转换为 TensorFlow Lite。这是一个漫长复杂旅程。需要跨越很多障碍才能成功。...不过,它也适用于 tf-nightly 版本2.4.0-dev20200923)。...运行 超级慢(大约有 1 小时,不是几秒钟!),所以这让很担心。然而,最终测试平均误差为 6.29e-07,所以我决定继续。 此时最大问题是——它导出了什么?这个.pb文件又是什么?...然后,发现网络使用许多操作仍在开发中,因此正在运行 TensorFlow 版本 2.2.0 无法识别它们。

1.4K20

以为,前端精髓是学会分析与思考,不是js语句

今天在跟同学们讲课,讲到做轮播图时候,脑子里突然蹦出一句话,“学js学前端,是学习用程序、用机器思维方式来解决现实当中问题,不是学这几十上百条js语句”。...它并不是一个做网页,虽然这个职位看起来和做起来,都是一个做网页口语化描述一下,这个职位它实际上是把人们在现实生活当中需求,放到网上来给它实现了,是做线下需求网络化。...,它在眼里是一台发动机“剖面图”; // 当我面对一个网站时候,它在眼里就是一整台运行中发动机。...这是眼中,心中前端开发。 前端开发为什么叫前端?就是因为它用肉眼能看到。后端开发为啥叫后端?因为它肉眼看不到。所以前端开发也可以放在可视化开发大范畴里。...可能有同学不认同看法。这没关系,事实会证明是正确,“只会js语句,没有逻辑思维,不懂分析与设计前端新人,根本找不到工作。” over.

1K70

TensorFlow 2.0 新增功能:第三、四部分

(当前,TensorFlow 支持最高 Python 版本是 3.6) NumPy(如果不是TensorFlow 自动安装) Docker(请参阅第 1 章和 “TensorFlow 2.0 入门...简而言之,可以说SavedModel包含完整 TensorFlow 程序以及模型权重和所描述各种计算操作描述。...这意味着开发人员可以以直观 Python 形式描述基本编程语言结构(例如循环和条件),不是 TensorFlow 等效形式,并且具有可比性能。...函数现在返回张量不是单个数字事实证明了这一点。 输出值与预期值相同。...量化模型好处在于,它可以有效地表示任意范围范围,它们线性扩展使乘法简单明了,量化权重具有对称范围,可以实现下游硬件优化, 32 位浮点数则无法实现。

2.3K20

Pytorch转tflite方式

目标是想把在服务器上用pytorch训练好模型转换为可以在移动端运行tflite模型。 最直接思路是想把pytorch模型转换为tensorflow模型,然后转换为tflite。...但是这个转换目前没有发现比较靠谱方法。 经过调研发现最新tflite已经支持直接从keras模型转换,所以可以采用keras作为中间转换桥梁,这样就能充分利用keras高层API便利性。...pb模型转换为tf lite模型 转换前需要先编译转换工具 bazel build tensorflow/contrib/lite/toco:toco 转换分两种,一种转换为floattf...lite,另一种可以转换为对模型进行unit8量化版本模型。...=input \ --output_array=MobilenetV1/Predictions/Reshape_1 量化方式转换(注意,只有量化训练模型才能进行量化tf_lite

1.9K40

模型压缩一半,精度几乎无损,TensorFlow推出半精度浮点量化工具包,还有在线Demo

点击上方↑↑↑“OpenCV学堂”关注 来源:公众号 量子位 授权转载 近日,TensorFlow模型优化工具包又添一员大将,训练后半精度浮点量化(float16 quantization)工具。...有了它,就能在几乎不损失模型精度情况下,将模型压缩至一半大小,还能改善CPU和硬件加速器延迟。 这一套工具囊括混合量化,全整数量化和修剪。 ? 如何量化模型,尽可任君挑选。...在分布式深度学习中,模型可能会有成千上万个参数,体积一个赛一个大,如果能把所有常量值都用16位浮点数不是32位浮点数来存储,那么模型大小就能压缩至一半,还是相当可观。...在TensorFlow Lite converter上把32位模型优化设置设为DEFAULT,然后把目标规范支持类型设置为FLOAT16: import tensorflow as tf converter...] converter.target_spec.supported_types = [tf.lite.constants.FLOAT16] Tflite_quanit_model = converter.convert

2K50

基于Tensorflow2 Lite在Android手机上实现图像分类

Lite在Android手机上实现图像分类 前言 Tensorflow2之后,训练保存模型也有所变化,基于Keras接口搭建网络模型默认保存模型是h5格式之前模型格式是pb。...Tensorflow2h5格式模型转换成tflite格式模型非常方便。...keras搭建一个MobileNetV2模型并训练自定义数据集,本教程主要是介绍如何在Android设备上使用Tensorflow Lite部署分类模型,所以关于训练模型只是简单介绍,代码并不完整。...) # 生成非量化tflite模型 converter = tf.lite.TFLiteConverter.from_keras_model(model) tflite_model = converter.convert...如果保存模型格式不是h5,而是tf格式,如下代码,保存模型是tf格式

3.2K40

业界 | TensorFlow Lite 2019 年发展蓝图

我们希望您了解一下 TensorFlow Lite 2019 年规划总体概览,可能会因各种因素随时变化,并且下列内容先后顺序并不反映优先次序。...易用性 支持更多 op 根据用户反馈优先处理更多 op op 版本控制和签名 op 内核将获得版本号 op 内核将可以通过签名识别 新转换器 实现新 TensorFlow Lite 转换器,该转换器将能更好地处理图形转换...(即控制流、条件语句等)并取代 TOCO 继续改进 TF Select Op 支持更多使用 TF Select(例如哈希表、字符串等)转换类型 在通过 op 剥离使用 TF Select Op 时支持更小二进制文件大小...支持长短期记忆 (LSTM) / 循环神经网络 (RNN) 增加对 LSTM 和 RNN 完整转换支持 图形可视化工具 提供增强版图形可视化工具 预处理和后处理支持 针对推理预处理和后处理提供更多支持...NN API 支持 框架可扩展性 通过自定义优化版本支持简便 CPU 内核重写 GPU 委派 继续扩展对 OpenGL 和 Metal op 总支持 op 开源 提升 TFLite CPU 性能

78720

使用Python实现深度学习模型:知识蒸馏与模型压缩

知识蒸馏(Knowledge Distillation)和模型压缩(Model Compression)是两种有效技术,可以在保持模型性能同时减少模型大小和计算需求。...知识蒸馏概述 知识蒸馏是一种通过将复杂模型(教师模型)知识传递给简单模型(学生模型)方法。教师模型通常是一个大型预训练模型,学生模型则是一个较小模型。...通过让学生模型学习教师模型输出,可以在保持性能同时减小模型大小。 3....(student_model) tflite_model = converter.convert() # 保存压缩后模型 with open('student_model.tflite', 'wb'...代码实现 完整代码实现如下: import tensorflow as tf from tensorflow.keras.datasets import mnist from tensorflow.keras.models

8210

使用Tensorflow进行实时移动视频对象检测

模型配置和训练 下载预训练模型 正如在开始时提到,将使用预先训练模型,不是从头开始设计模型,检测模型动物园收集了广泛使用预先训练模型列表。...转换为TensorFlow Lite 拥有经过训练/部分受训练模型后,要为移动设备部署模型,首先需要使用TensorFlow Lite将模型转换为针对移动和嵌入式设备进行了优化轻量级版本。...要获取冻结图,可以export_tflite_ssd_graph.py直接从中使用模板脚本tf-models/research。...通过在tensorflow目录中脚本下面运行,将生成量化模型以提高移动性能。...该文件包含图形和所有模型参数,并且可以通过Andriod和iOS设备上TensorFlow Lite解释器运行。

2.1K00

《Scikit-Learn、Keras与TensorFlow机器学习实用指南(第二版)》第19章 规模化训练和部署TensorFlow模型

另一种减小模型不是使用更小神经网络架构)方法是使用更小位宽(bit-width):例如,如果使用半浮点(16位),不是常规浮点(32位),模型大小就能减小到一半,准确率会下降一点。...TFLite转换器可以更好,可以将模型权重量化变为小数点固定8位整数。相比为32位浮点数,可以将模型大小减为四分之一。最简单方法是后训练量化:在训练之后做量化,使用对称量化方法。...降低延迟和能量消耗最高效方法也是量化激活函数,让计算只用整数进行,没有浮点数运算。就算使用相同位宽(例如,32位整数,不是32位浮点数),整数使用更少CPU循环,耗能更少,热量更低。...同时,为了解决饱和问题,最好使用一些强大GPU,不是大量一般GPU,最好将GPU集中在有内网服务器中。还可以将浮点数精度从32位(tf.float32)降到16位(tf.bfloat16)。...为什么使用gRPC API不是REST API,查询TF Serving模型? 在移动和嵌入设备上运行,TFLite减小模型大小有什么方法? 什么是伪量化训练,有什么用?

6.6K20
领券