TensorFlowLite是一个开源项目库,致力于在手机终端和内嵌式机器设备上运行设备学习模型(可在http://www.tensorflow.org/lite上得到)。它适用具备低延时和小二进制尺寸的设施上的人工神经网络推论。偏微分流Lite还适用应用安卓操作系统神经元网络API(NNAPI)开展硬件加速器。
大家使用一下TensorFlowLite,试用以前大家先详细介绍一位老一辈,自然也是BUG的来源。
Bug一词指在电脑操作系统或系统中,掩藏着的一些未被发现的问题或问题。可是Bug一词是怎样来历的呢?这一切始于1947年,从一只很大飞进Mark II计算机的虫子谈起。
拓展阅读文章:
1947年9月9日,当大家检测Mark II计算机时,它忽然发生了常见故障。通过几小时的查验后,工作员发觉了一只飞蛾被击败在控制面板F的第70号电磁阀中。当把这个飞蛾取下后,设备便修复了正常的。
那时候为Mark II计算机工作中的知名女科学家Grace Hopper将这只飞蛾粘帖到那天的工作指南中,并在上面加了一行注解,
“First actual case of bug being found”
那时候的时间是15:45.伴随着这个故事的广为人知,愈来愈多的人逐渐应用Bug一词来代指计算机中的设计方案不正确,并把Grace Hopper上备案的那只飞蛾当作是计算机里上第一个被记载在文本文档中的Bug.
这一叫法之后转变成表述缺点系统漏洞的计算机专业名词,大家习惯性地把清除程序流程常见故障叫做“debug”(灭虫)。
今日大家检测TensorFlow的image classification的角色便是老一辈grace_hopper的照片。
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.tfliteINFO: resolved reporterINFO: invokedINFO: average time: 44.477 ms INFO: 0.780392: 653 military uniformINFO: 0.105882: 907 Windsor tieINFO: 0.0156863: 458 bow tieINFO: 0.0117647: 466 bulletproof vestINFO: 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.tfliteINFO: resolved reporterINFO: Created TensorFlow Lite XNNPACK delegate for CPU.INFO: Applied XNNPACK delegate.INFO: invokedINFO: average time: 44.514 ms INFO: 0.780392: 653 military uniformINFO: 0.105882: 907 Windsor tieINFO: 0.0156863: 458 bow tieINFO: 0.0117647: 466 bulletproof vestINFO: 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.tfliteINFO: resolved reporterINFO: Created TensorFlow Lite delegate for NNAPI.INFO: Applied NNAPI delegate.INFO: invokedINFO: average time: 2.773 ms INFO: 0.768627: 653 military uniformINFO: 0.105882: 907 Windsor tieINFO: 0.0196078: 458 bow tieINFO: 0.0117647: 466 bulletproof vestINFO: 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 msInference time: 3.0 ms0.870588: military uniform0.031373: Windsor tie0.011765: mortarboard0.007843: bow tie0.007843: bulletproof vest
从运行结果看来一样的照片,NPU运行要比CPU快许多, NPU和CPU计算结论相距并不大,NNAPI运行结论相似之处更高一些。