1539|1

18

帖子

0

资源

一粒金砂(中级)

【米尔MYC-JX8MPQ评测】+ 运行 TensorFlow Lite(CPU和NPU对比) [复制链接]

TensorFlowLite是一个开源软件库,专注于在移动设备和嵌入式设备上运行机器学习模型(可在http://www.tensorflow.org/lite上获得)。它支持具有低延迟和小二进制大小的设备上的机器学习推断。张量流Lite还支持使用安卓操作系统神经网络API(NNAPI)进行硬件加速。 

我们试用一下TensorFlowLite,试用之前我们先介绍一位老前辈,当然也是BUG的出处。

 

Bug一词指在电脑系统或程序中,隐藏着的一些未被发现的缺陷或问题。但是Bug一词是如何由来的呢?这一切起源于1947年,从一只不小飞入Mark II计算机的飞虫说起。

1947年9月9日葛丽丝·霍普(Grace Hopper)发现了计算机史上第一只程序“Bug”

扩展阅读:

1947年9月9日,当人们测试Mark II计算机时,它突然发生了故障。经过几个小时的检查后,工作人员发现了一只飞蛾被打死在面板F的第70号继电器中。当把这个飞蛾取出后,机器便恢复了正常。

当时为Mark II计算机工作的著名女科学家Grace Hopper将这只飞蛾粘帖到当天的工作手册中,并在上面加了一行注释,

“First actual case of bug being found”

 

 

1947年9月9日葛丽丝·霍普(Grace Hopper)发现了计算机史上第一只程序“Bug”

当时的时间是15:45.随着这个故事的广为流传,越来越多的人开始使用Bug一词来指代计算机中的设计错误,并把Grace Hopper上登记的那只飞蛾看作是计算机里上第一个被记录在文档中的Bug.

这一称呼后来演变成表达缺陷漏洞的计算机专业术语,人们习惯地把排除程序故障叫做“debug”(除虫)。

 

今天我们测试TensorFlow的 image classification 的主角就是老前辈grace_hopper的相片。

image.png  

1、在CPU上使用移动网络模型运行此示例,请使用以下命令:

root@myd-jx8mp:/usr/bin/tensorflow-lite-2.4.0/examples# ./label_image -m mobilenet_v1_1.0_224_quant.tflite -i grace_hopper.bmp -l labels.txt

运行结果如下

INFO: Loaded model mobilenet_v1_1.0_224_quant.tflite
INFO: resolved reporter
INFO: invoked
INFO: average time: 44.477 ms 
INFO: 0.780392: 653 military uniform
INFO: 0.105882: 907 Windsor tie
INFO: 0.0156863: 458 bow tie
INFO: 0.0117647: 466 bulletproof vest
INFO: 0.00784314: 835 suit

2、要使用xnnpack委托在CPU上运行示例应用程序,请使用-x1开关

./label_image -m mobilenet_v1_1.0_224_quant.tflite -i grace_hopper.bmp -l labels.txt -x 1

运行结果如下

INFO: Loaded model mobilenet_v1_1.0_224_quant.tflite
INFO: resolved reporter
INFO: Created TensorFlow Lite XNNPACK delegate for CPU.
INFO: Applied XNNPACK delegate.
INFO: invoked
INFO: average time: 44.514 ms 
INFO: 0.780392: 653 military uniform
INFO: 0.105882: 907 Windsor tie
INFO: 0.0156863: 458 bow tie
INFO: 0.0117647: 466 bulletproof vest
INFO: 0.00784314: 835 suit

3、若要在GPU/NPU硬件加速器上使用相同的模型运行该示例,请添加-a1命令行参数。要区分3DGPU和NPU,请使用USE_GPU_INFERENCE开关。例如,对于NPU硬件加速器,请使用以下命令:

USE_GPU_INFERENCE=0 ./label_image -m mobilenet_v1_1.0_224_quant.tflite -i grace_hopper.bmp -l labels.txt -a 1

运行结果如下

INFO: Loaded model mobilenet_v1_1.0_224_quant.tflite
INFO: resolved reporter
INFO: Created TensorFlow Lite delegate for NNAPI.
INFO: Applied NNAPI delegate.

INFO: invoked
INFO: average time: 2.773 ms 
INFO: 0.768627: 653 military uniform
INFO: 0.105882: 907 Windsor tie
INFO: 0.0196078: 458 bow tie
INFO: 0.0117647: 466 bulletproof vest
INFO: 0.00784314: 835 suit

3、使用Python3运行

root@myd-jx8mp:/usr/bin/tensorflow-lite-2.4.0/examples# python3 label_image.py 

运行结果

INFO: Created TensorFlow Lite delegate for NNAPI.
Applied NNAPI delegate.

Warm-up time: 6612.9 ms

Inference time: 3.0 ms

0.870588: military uniform
0.031373: Windsor tie
0.011765: mortarboard
0.007843: bow tie
0.007843: bulletproof vest

image.png

 

从运行结果来看同样的图片,NPU运行要比CPU快很多, NPU和CPU运算结果相差不大,NNAPI运行结果相似度更高。

 

 

 


回复

1786

帖子

0

资源

纯净的硅(高级)

除了NPU运行要比CPU快很多,还有很多优点


回复
您需要登录后才可以回帖 登录 | 注册

相关帖子
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
    推荐帖子
    请教个防静电入门的问题

    是不是防静电装置,其实基本都要专门接地才真正有效? 查了下实验室和厂房里好像都是专门做了接地线的。 如果是业余爱好者 ...

    LSM6DS3TR-C在I2C地址配置时,SA0脚位连接GND时,功耗大

    大家好,关于LSM6DS3TR-C在I2C地址配置时,SA0脚位连接GND时,有10k下拉电阻。功耗会比SA0悬空增加0.5mA的电流,但是在LSM6DS3TR ...

    三段同信号的七彩LED灯带怎么用三个遥控器控制

    我有三张桌子都装了同一款七彩灯带,因为遥控器也是同一款,所以现在遥控控制了三张桌子,有没有办法一个遥控器控制一张台。

    滤波器功能判断

    判断图中信号输出实现滤波器的何种功能(高通、低通、带通....) Uo1是低通、Uo2是带通、Uo3是带通;这是怎么判断出来的?有 ...

    直流无刷电机的问题

    我们公司要做一款洗衣机,用直流无刷电动机。 反电动势是梯形波。 我买了一个开发板,卖家有程序,可是他说反电动势是 ...

    射频信号源与任意波发生器,如何测试三阶交调接截取获点(OPI3)?  

    在微波通信系统中,其中有一项三阶交调接截获点OPI3(third-orderinterceptpoint),它是衡量器件线性度和失真性能的两个重要指标。 ...

    关闭
    站长推荐上一条 1/6 下一条

    About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

    站点相关: 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

    北京市海淀区知春路23号集成电路设计园量子银座1305 电话:(010)82350740 邮编:100191

    电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2022 EEWORLD.com.cn, Inc. All rights reserved
    快速回复 返回顶部 返回列表