首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >缩小TFLite型号?

缩小TFLite型号?
EN

Stack Overflow用户
提问于 2018-07-24 07:32:24
回答 2查看 5.7K关注 0票数 3

我目前正在通过以下指南建立一个多标签图像分类模型(它使用启动作为基本模型):https://towardsdatascience.com/multi-label-image-classification-with-inception-net-cbb2ee538e30

.pb转换到.tflite后,模型只比.tflite小约0.3mb。

以下是我的转换代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
toco \
  --graph_def_file=optimized_graph.pb \
  --output_file=output/optimized_graph.tflite \
  --output_format=TFLITE \
  --input_shape=1,299,299,3 \
  --input_array=Mul \
  --output_array=final_result \
  --inference_type=FLOAT \
  --inference_input_type=FLOAT

所以,我有几个问题:

  1. 在将模型转换为.tflite之后,我应该期望减少多少大小?
  2. 是否有任何方法来缩小尺寸,同时仍然能够转换为移动友好的模式?如果不是,我猜我需要将移动网络转换为使用多标签分类。
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-08-03 08:07:41

好吧,所以我找到了办法。我使用优化的图形(非量化的)并运行以下命令:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
tflite_convert --graph_def_file=optimized_graph.pb \
  --output_file=output/optimized_graph_quantized.tflite \
  --output_format=TFLITE \
  --input_shape=1,299,299,3 \
  --input_array=Mul \
  --output_array=final_result \
  --inference_type=QUANTIZED_UINT8 \
  --std_dev_values=128 --mean_values=128 \
  --default_ranges_min=-6 --default_ranges_max=6 \
  --quantize_weights=true

我主要关注的是,当我不指定min/max范围时,我会得到以下消息:“数组conv是生成输出数组conv_1的Conv操作符的输入,缺少min/max数据,这是量化所必需的。要么以非量化的输出格式为目标,要么更改输入图以包含min/max信息,或者传递-默认范围_min=和-默认_range_max=,如果您不关心结果的准确性的话。”

我已经改变了to诗人的android代码,允许我使用量化的tflite图(基本上与这个-https://github.com/tensorflow/tensorflow/issues/14719相反),而且我似乎得到了与原始的、非量化的图形一样好的结果。

票数 1
EN

Stack Overflow用户

发布于 2019-03-18 03:04:42

我使用@ChristopherPaterson解决方案解决了同样的问题,但removing --quantize_weights=true为我工作。该命令是:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
tflite_convert --graph_def_file=optimized_graph.pb \
  --output_file=output/optimized_graph_quantized.tflite \
  --output_format=TFLITE \
  --input_shape=1,299,299,3 \
  --input_array=Mul \
  --output_array=final_result \
  --inference_type=QUANTIZED_UINT8 \
  --std_dev_values=128 --mean_values=128 \
  --default_ranges_min=-6 --default_ranges_max=6
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51502539

复制
相关文章
mac OS 查看 CPU 型号; linux 查看CPU 型号
当你在自己平台进行测试的时候,需要告诉讨论的对方自己的型号,配置;这样maintainer 才能分析你测试的合理性:
西湖醋鱼
2020/12/30
11.6K0
windows使用c_api调用tflite 2.3 dll
在上一篇文章【Win10系统编译Tensorflow Lite 2.3为动态链接库tensorflowlite_c.dll】介绍了如何在Windows平台下编译tflite为动态链接库tensorflowlite_c.dll,接下来介绍如何使用tensorflowlite_c.dll。上一篇文章中我们编译的tflite库为c语言接口,即c_api,在使用过程中,只需下面一条include语句即可:
superhua
2021/01/04
3.4K2
CPU型号后缀含义
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/143938.html原文链接:https://javaforall.cn
全栈程序员站长
2022/08/31
4K0
STM32型号详解
微处理器(MPU)通常代表一个功能强大的CPU,但不是为任何已有的特定计算目的而设计的芯片。这种芯片往往是个人计算机和高端工作站的核心CPU。中央处理器,或简称为处理器,英文缩写为CPU,即Central Processing Unit,是电子计算机的主要设备之一,其功能主要是解译计算机指令以及处理计算机软件中的数据。CPU为电子计算机设计提供了基本的数字计算特性。CPU、存储设备和输入/输出设备是现代微型电脑的三大核心部件。由集成电路制造的CPU通常称为微型处理器。从20世纪70年代中期开始,单芯片微型处理器几乎取代了所有其他类型的CPU,如今CPU这个术语几乎成为了所有微型处理器的代称。
怪兽
2023/03/06
2.6K0
STM32型号详解
Android Studio新特性:使用TFLite模型更简单
Android Studio仍然在疯狂更新中,隔一段时间打开Android Studio,就会提示有新版本,对此我已经见怪不怪。一般而言,我会顺手点击一下升级。今天我又点击了升级,粗略看了一下新版本4.1的特性说明,其中有一项是:使用TensorFlow Lite模型。出于对机器学习的兴趣,于是就研究了一番这个新特性。
云水木石
2020/11/03
2.4K0
Linux(Ubuntu)系统查看显卡型号
给我的Ubuntu安装显卡驱动时,需要查看显卡型号,因为我的是Windows/Ubuntu双系统,一开始想到的是去windows查看,然后下载驱动,安装成功。对于只有Linux系统的情况,总结方法如下:
全栈程序员站长
2022/09/17
14.4K0
Linux(Ubuntu)系统查看显卡型号
GIF压缩小记
广告素材中,图片类素材都是以静态图片为主,缺少交互感和吸引力,可能导致点击率偏低。为此,腾讯广告多媒体AI团队使用AI技术在图片焦点区域生成动态效果,以提升点击率。在落地页中,如果是以视频的形式不但交互过重,并且影响页面加载速度。因此,需要在保证展示效果的前提下使用压缩比尽可能大的GIF来做落地页展示。
乾彪
2021/11/25
1.1K1
服务器品牌、型号介绍
1、戴尔(Dell),是一家总部位于美国德克萨斯州朗德罗克的世界五百强企业,由迈克尔·戴尔于1984年创立。戴尔以生产、设计、销售家用以及办公室电脑而闻名,不过它同时也涉足高端电脑市场,生产与销售服务器、数据储存设备、网络设备等
星哥玩云
2022/09/15
4.8K0
服务器品牌、型号介绍
stm32型号解读
STM32 F2系列高性能MCU 基于ARM® Cortex™-M3的STM32 F2系列采用意法半导体先进的90 nm NVM制程制造而成,具有创新型自适应实时存储器加速器(ART加速器™)和多层总线矩阵, 实现了前所未有的高性价比。 该系列具有集成度高的特点:整合了1MB Flash存储器、128KBSRAM、以太网MAC、USB 2.0 HS OTG、照相机接口、硬件加密支持和外部存储器接口。 意法半导体的加速技术使这些MCU能够在主频为120 MHz 下实现高达150 DMIPS/398 CoreMark的性能,这相当于零等待状态执行,同时还能保持极低的动态电流消耗水平( 175 μA/MHz)。 带有DSP和FPU指令的STM32 F3系列混合信号MCU STM32 F3系列具有运行于72 MHz的32位ARM Cortex-M4内核(DSP、FPU)并集成多种模拟外设,从而降低应用成本并简化应用设计,它包括:
庞小明
2018/12/10
2.2K0
tflite模型PC端与嵌入式交叉验证
TFLM(Tensorflow lite micro)验证嵌入式端模型运行,直截了当做法是:对比PC端和嵌入式端运行的tflite模型的输入输出。笔者就TinyML的HelloWorld例程,实践了PC端tflite模型运行情况和MCU端RT1062部署后运行情况。
flavorfan
2022/05/13
2.8K0
tflite模型PC端与嵌入式交叉验证
TinyML-5:TFLite Quantization背后的运行机制
上一篇文章描述了为什么quantization 量化的int8足够运行推理,以及Quantization量化对TinyML的重要性,但是没有深入说明Quantization的实现机制,本篇博文打算从TFlite的案例代码切入,从代码的Optimize选项展开讲TFLite背后Quantization的PTQ,QAT技术等。
flavorfan
2021/01/17
2.5K0
TinyML-5:TFLite Quantization背后的运行机制
没有硬件,也可以运行与测试 TFLite 应用
提到人工智能和机器学习(Marchine Learning,ML),你的脑海里是否立即会浮现计算中心、高端 GPU、成百上千的 TPU 等等。实际上,随着嵌入式设备、移动终端以及近年来物联网(Internet of Things,IoT)的发展,人工智能离我们越来越近。手机、智能音箱、电话手表,甚至控制开关,都配备有一定的人工智能。特别是物联网和智能家居的快速发展,机器学习在微型低功耗设备上应用得越来越广泛。
云水木石
2020/06/24
1.4K0
iOS-判断设备型号(判断iPhoneX)
原文链接:https://stackoverflow.com/questions/26028918/how-to-determine-the-current-iphone-device-model/26962452#26962452 下面是我整理过后写成的扩展,可直接Ctrl+C、Ctrl+V使用 import UIKit public enum DeviceType: Int { case simulator case appleTV case appleTV4K ca
用户2215591
2018/06/29
2.3K0
获取CPU型号和序列号
主要参考文章:关于CPU序列号的问题,以及如何获取×64下CPU的ProcessorID_fudong071234的博客-CSDN博客前几天经过查资料,得到网络上获取CPU序列号的方法是错误的,首先我找到了一篇论文,这篇论文里面是这么说的:这篇论文是错误的。这篇是错误的这篇是错误的!!!!!!!!!2、CPU序列号CPU序列号是一个建立在处理器内部的、唯一的、不能被修改的编号。它由96位数字组成。高32位是CPUID,用来识别CPU类型。低64位每个处理器都不同,唯一地代表了该处理器。CPU号可以用来识别
大菊观
2021/09/27
5.2K0
# 希尔排序(缩小增量排序)
# 希尔排序(缩小增量排序) # 原理 将一个无序集合分割成多个子集合进行直接插入排序并交换存储位置, 然后将排序结果继续分为多个子集合排序交换存储位置, 每次子集合的数量递减,直到到子集合个数为1时进行最后一次直接插入排序。 希尔排序需要关注的一点就是每次我们隔多少个元素拆分集合(术语是增量因子), 所以通过增量因子(每组多少个元素)确定子集合的个数很重要,但最终一次排序的增量因子必须是1。 例: 原始集合:{5,2,4,6,8,1,9,7,10,3} 分割集合:{5,1} {2,9} {4,7} {6
用户1175783
2019/09/10
5170
获取指定句柄的类型号.
在windows系统下.句柄是很常用的. 骚操作的方法可以通过句柄拷贝方式拷贝到另一个进程让其占用句柄.比如独占文件. 但是有时候比如驱动想删除文件.强删文件的时候就会用到句柄类型. 但是此时一般都是写死的.网上也很少相关资料.这里就介绍一下.怎么通过句柄获取指定句柄类型(任何内核对象 句柄都可以使用) 下面以文件举例
IBinary
2019/09/29
3.4K0
获取指定句柄的类型号.
basler 相机_basler相机型号
该例程显示了如何利用CInstantCamera class这个类进行图像的抓取以及处理,图像的抓去和显示是异步进行的,当应用在处理一个buffer时,对于下一个buffer的获取是并行执行的。CInstantCamera class 使用一个内存池从相机设备检测图像数据,一旦一个buffer得到数据,这个buffer将会被检索到并进行处理,这个buffer和额外的数据将会存放在获取图像的结果中,而该结果对应了一个相应的指针。当释放内存时候或者指针对象被摧毁时,该缓冲数据将自动销毁。
全栈程序员站长
2022/11/03
6560
vim怎么显示行号_vim型号
1、进入vi or vim编辑环境下,进入命令行模式,然后输入set number,就可以显示行号了。
全栈程序员站长
2022/11/15
5.1K0
vim怎么显示行号_vim型号
点击加载更多

相似问题

如何缩小Tflite模型的大小或通过编程下载和设置?

221

从TFLite模型获取TFLite版本信息

175

根据TFLite官方示例无法加载TFLite模型

12

TfLite LSTM模型

134

tflite : tflite有处理各种输入形状的方法吗?

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文