使用tflite（一）简介

tflite的量化并不是全程使用uint8计算。而是存储每层的最大和最小值，然后把这个区间线性分成 256 个离散值，于是此范围内的每个浮点数可以用八位 (二进制) 整数来表示，近似为离得最近的那个离散值。比如，最小值是 -3 而最大值是 6 的情形，0 字节表示 -3，255 表示 6，而 128 是 1.5。

为什么需要量化:

[En]

With the development of deep learning, the model becomes larger and larger, which is not conducive to the application of the model to some low-cost embedded systems. In order to solve this problem, model quantization arises at the historic moment. The purpose is to compress the model with a small loss of accuracy, so that the model can be applied to embedded devices such as mobile phones, cameras, robots and so on.

tflite 做的优化（针对安卓、移动设备）

TensorFlow 2.x 模型使用 SavedModel 格式存储，并使用高级tf.keras. API（Keras 模型）或低级tf. API（从中生成具体函数）生成。 *

import tensorflow as tf

converter = tf.lite.TFLiteConverter.from_saved_model(saved_model_dir)
tflite_model = converter.convert()

with open('model.tflite', 'wb') as f:
f.write(tflite_model)


tf.lite.TFLiteConverter.from_keras_model()：转换 Keras模型。

mport tensorflow as tf

model = tf.keras.models.Sequential([
tf.keras.layers.Dense(units=1, input_shape=[1]),
tf.keras.layers.Dense(units=16, activation='relu'),
tf.keras.layers.Dense(units=1)
])
model.compile(optimizer='sgd', loss='mean_squared_error')
model.fit(x=[-1, 0, 1], y=[-3, -1, 1], epochs=5)

converter = tf.lite.TFLiteConverter.from_keras_model(model)

tflite_model = converter.convert()

with open('model.tflite', 'wb') as f:
f.write(tflite_model)


tf.lite.TFLiteConverter.from_concrete_functions(): 转换 具体函数 。

import tensorflow as tf

class Squared(tf.Module):
@tf.function(input_signature=[tf.TensorSpec(shape=[None], dtype=tf.float32)])
def __call__(self, x):
return tf.square(x)
model = Squared()

concrete_func = model.__call__.get_concrete_function()

converter = tf.lite.TFLiteConverter.from_concrete_functions([concrete_func],
model)
tflite_model = converter.convert()

with open('model.tflite', 'wb') as f:
f.write(tflite_model)


转换 SavedModel

tflite_convert \
--saved_model_dir=/tmp/mobilenet_saved_model \
--output_file=/tmp/mobilenet.tflite


转换 Keras H5 模型

tflite_convert \
--keras_model_file=/tmp/mobilenet_keras_model.h5 \
--output_file=/tmp/mobilenet.tflite


部署Linux平台

tflite详细使用请查看（我使用的tf2.5）

Original: https://blog.csdn.net/li_xiaolaji/article/details/122342331
Author: blue fireworks
Title: 使用tflite（一）简介

(0)

大家都在看

• 源码解析–图数据hugegraph如何将数据写入后端存储

随着社交、电商、金融、零售、物联网等行业的快速发展，现实社会织起了了一张庞大而复杂的关系网，亟需一种支持海量复杂数据关系运算的数据库即图数据库。本系列文章是学习知识图谱以及图数据库…

人工智能 2023年6月10日
0146
• python pivot函数筛选_python中pivot()函数基础知识点

不同于以往为大家介绍的函数使用，我们利用pivot函数可以实现的方式，就是用来重塑数据使用的，在python的使用上并不常见，但是如果需要利用这种功能，基本上能够被我们选择调用的函…

人工智能 2023年7月8日
0147
• python给数据加列名_使用列名创建空数据帧或列表，然后按列名添加数据

我试图通过将我用VB编写的代码转换成python来学习python2.7。我有列名，我试图创建一个空的数据帧或列表，然后通过迭代添加行(见下文)。我不知道需要提前添加的行总数。我可…

人工智能 2023年7月9日
0149
• 从目标检测数据集中扣出所需类别进行分类

做分类模型除了imagenet这些，还会有常见的目标检测数据集可以利用起来，把所需要的类别扣出来再做分类。检测数据集有VOC，COCO,openimage,object365等，对…

人工智能 2023年7月1日
0137
• 【Pytorch】torch_dct中解决AttributeError: module ‘torch‘ has no attribute ‘irfft‘

问题背景 在使用 torch_dct时报错，经调研，是torch版本过高，dct中调用的旧的fft相关函数已经更新。 探索过程 参考[2]中说的对应关系如下： 旧版新版 torch…

人工智能 2023年6月16日
0189
• pytorch根据数据集编写对应Dataset的方法（数据集格式一）——分类任务

我是一名小白，在学习深度学习的时候发现很少有资料介绍数据集载入的过程，故记录数据集载入步骤详解，希望与大家共同进步。 Dataset类定义 class Dataset(typing…

人工智能 2023年7月1日
0155
• 【Python】国内生产总值分析预测

✨博文作者 wangzirui32💖 喜欢的可以 点赞 收藏 关注哦~~👏 我的第162篇原创作品👉本文首发于CSDN，未经许可禁止转载hello，大家好，我是wangzirui3…

人工智能 2023年6月16日
0212
• 必读论文(1)——Attention Is All You Need

文章目录 Abstract 1 Introduction 2 Background 3 Model Architecture * 3.1 Encoder and Decoder S…

人工智能 2023年5月31日
0210
• gluon使用记录贴

Q1：ros编译出现error: no matching function for call to ‘ros_control_boilerplate::GenericH…

人工智能 2023年6月10日
0118
• 【流行学习】拉普拉斯映射（Laplacian Eigenmaps）

一、前言 拉普拉斯特征映射是一种基于图的降维算法，它希望在原空间中相互间有相似关系的点，在降维后的空间中尽可能的靠近，从而在降维后仍能保持原有的数据结构信息。 二、主要步骤 拉普拉…

人工智能 2023年7月16日
0143
• Neo4j社区版环境搭建

人工智能 2023年6月4日
0194
• Python 中的主成分分析 (PCA)

无监督学习 什么是主成分分析 当我们执行主成分分析 (PCA) 时，我们希望找到数据集的主成分。令人惊讶不是吗？那么，数据集的主要组成部分是什么，我们为什么要找到它们，它们告诉我们…

人工智能 2023年6月19日
0133
• MySQL表的操作

文章目录 MySQL表的操作 * 创建表 创建表案例 查看表结构 修改表 删除表 MySQL表的操作 表操作至少会涉及如下两类SQL语句： DDL（Data Definition …

人工智能 2023年7月30日
0154
• OpenCV_信用卡识别代码_唐宇迪实战项目

PyCharm环境配置 添加将所需的两个图片的路径 PyCharm中添加OpenCV库 1.导入工具包 2.设置图片的路径 argparse.ArgumentParser()函数：…

人工智能 2023年7月10日
0181
• 通俗理解大数据及其应用价值

大数据概述 在大数据这个概念兴起之前，信息系统存储数据的方法主要是我们熟知的关系型数据库，关系型数据库，关系型模型之父 Edgar F. Codd，在 1970 年 Communi…

人工智能 2023年7月17日
0136
• 使用OpenCV、ONNXRuntime部署YOLOV7目标检测——记录贴

这两天想实现yolov5的tensort加速，小白一枚，领悟甚浅，只能记录一下，防止遗忘了。 先记录一下yolov7： yolov7的OpenCV、ONNXRuntime部署 分享…

人工智能 2023年7月9日
0183