0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

用于移动设备的框架TensorFlow Lite发布重大更新

jmiy_worldofai 来源:lq 2019-01-21 13:45 次阅读

TensorFlow用于移动设备的框架TensorFlow Lite发布重大更新,支持开发者使用手机等移动设备的GPU来提高模型推断速度。

在进行人脸轮廓检测的推断速度上,与之前使用CPU相比,使用新的GPU后端有不小的提升。在Pixel 3和三星S9上,提升程度大概为4倍,在iPhone 7上有大约有6倍。

为什么要支持GPU?

众所周知,使用计算密集的机器学习模型进行推断需要大量的资源。

但是移动设备的处理能力和功率都有限。虽然TensorFlow Lite提供了不少的加速途径,比如将机器学习模型转换成定点模型,但总是会在模型的性能或精度上做出让步。

而将GPU作为加速原始浮点模型的一种选择,不会增加量化的额外复杂性和潜在的精度损失。

在谷歌内部,几个月来一直在产品中使用GPU后端做测试。结果证明,的确可以加快复杂网络的推断速度。

在Pixel 3的人像模式(Portrait mode)中,与使用CPU相比,使用GPU的Tensorflow Lite,用于抠图/背景虚化的前景-背景分隔模型加速了4倍以上。新深度估计(depth estimation)模型加速了10倍以上。

在能够为视频增加文字、滤镜等特效的YouTube Stories和谷歌的相机AR功能Playground Stickers中,实时视频分割模型在各种手机上的速度提高了5-10倍。

对于不同的深度神经网络模型,使用新GPU后端,通常比浮点CPU快2-7倍。对4个公开模型和2个谷歌内部模型进行基准测试的效果如下:

使用GPU加速,对于更复杂的神经网络模型最为重要,比如密集的预测/分割或分类任务。

在相对较小的模型上,加速的效果就没有那么明显了,使用CPU反而有利于避免内存传输中固有的延迟成本。

如何使用?

安卓设备(用Java)中,谷歌已经发布了完整的Android Archive (AAR) ,其中包括带有GPU后端的TensorFlow Lite。

你可以编辑Gradle文件,用AAR替代当前的版本,并将下面的代码片段,添加到Java初始化代码中。

//InitializeinterpreterwithGPUdelegate.GpuDelegatedelegate=newGpuDelegate();Interpreter.Optionsoptions=(newInterpreter.Options()).addDelegate(delegate);Interpreterinterpreter=newInterpreter(model,options);//Runinference.while(true){writeToInputTensor(inputTensor);interpreter.run(inputTensor,outputTensor);readFromOutputTensor(outputTensor);}//Cleanup.delegate.close();在iOS设备(用C++)中,要先下载二进制版本的TensorFlowLite。然后更改代码,在创建模型后调用ModifyGraphWithDelegate()。//InitializeinterpreterwithGPUdelegate.std::unique_ptrinterpreter;InterpreterBuilder(model,op_resolver)(&interpreter);auto*delegate=NewGpuDelegate(nullptr);//defaultconfigif(interpreter->ModifyGraphWithDelegate(delegate)!=kTfLiteOk)returnfalse;//Runinference.while(true){WriteToInputTensor(interpreter->typed_input_tensor< float>(0));if(interpreter->Invoke()!=kTfLiteOk)returnfalse;ReadFromOutputTensor(interpreter->typed_output_tensor< float>(0));}//Cleanup.interpreter=nullptr;DeleteGpuDelegate(delegate);

(更多的使用教程,可以参见TensorFlow的官方教程,传送门在文末)

还在发展中

当前发布的,只是TensorFlow Lite的开发者预览版。

新的GPU后端,在安卓设备上利用的是OpenGL ES 3.1 Compute Shaders,在iOS上利用的是Metal Compute Shaders。

能够支持的GPU操作并不多。有:

ADD v1、AVERAGE_POOL_2D v1、CONCATENATION v1、CONV_2D v1、DEPTHWISE_CONV_2D v1-2、FULLY_CONNECTED v1、LOGISTIC v1

MAX_POOL_2D v1、MUL v1、PAD v1、PRELU v1、RELU v1、RELU6 v1、RESHAPE v1、RESIZE_BILINEAR v1、SOFTMAX v1、STRIDED_SLICE v1、SUB v1、TRANSPOSE_CONV v1

TensorFlow官方表示,未来将会扩大操作范围、进一步优化性能、发展并最终确定API。

完整的开源版本,将会在2019年晚些时候发布。

传送门

使用教程:

https://www.tensorflow.org/lite/performance/gpu

项目完整文档:

https://www.tensorflow.org/lite/performance/gpu_advanced

博客地址:

https://medium.com/tensorflow/tensorflow-lite-now-faster-with-mobile-gpus-developer-preview-e15797e6dee7

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • cpu
    cpu
    +关注

    关注

    68

    文章

    10436

    浏览量

    206523
  • 移动设备
    +关注

    关注

    0

    文章

    465

    浏览量

    54234
  • tensorflow
    +关注

    关注

    13

    文章

    313

    浏览量

    60242
  • TensorFlow Lite
    +关注

    关注

    0

    文章

    27

    浏览量

    541

原文标题:TensorFlow Lite发布重大更新!支持移动GPU、推断速度提升4-6倍

文章出处:【微信号:worldofai,微信公众号:worldofai】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    谷歌模型框架是什么软件?谷歌模型框架怎么用?

    谷歌模型框架通常指的是谷歌开发的用于机器学习和人工智能的软件框架,其中最著名的是TensorFlowTensorFlow是一个开源的机器学
    的头像 发表于 03-01 16:25 230次阅读

    HarmonyOS:使用MindSpore Lite引擎进行模型推理

    如果是第三方框架的模型,比如 TensorFlowTensorFlow Lite、Caffe、ONNX 等,可以使用模型转换工具转换为.ms 格式的模型文件。 创建上下文,设置线程数
    发表于 12-14 11:41

    迅为iTOP-RK3568开发板npu手册更新

    使用tensorflow框架 6.2 使用caffe框架 6.3 使用tflite框架 6.4 使用onnx框架 6.5 使用darkne
    发表于 11-03 14:40

    迅为RK3588开发板使用 tflite 框架

    **1 TensorFlow LiteTensorFlow 移动和嵌入式设备轻量级解决方案。它使
    发表于 10-10 15:39

    iTOP-RK3588开发板使用 tensorflow框架

    TensorFlow 是一个软件库或框架,由 Google 团队设计,以最简单的方式实现机器学习和深度学习概念。它结合了优化技术的计算代数,便于计算许多数学表达式。TensorFlow 有以下 重要
    发表于 10-08 10:04

    更新:IEC新发布2项EMC标准!|深圳比创达EMC(下)a

    更新:IEC新发布2项EMC标准?(下)相信不少人是有疑问的,今天深圳市比创达电子科技有限公司就跟大家解答一下! 2023年2月,国际电工委员会(IEC)新发布了IEC TR 61000-1-1
    发表于 09-04 14:41

    使用MobilenetV2、ARM NN和TensorFlow Lite Delegate预建二进制文件进行图像分类教程

    本指南回顾了使用ARM NN TensorFlow Lite Delegate(ARM NN TfLite Delegate)进行图像分类的示例应用程序。 该指南解释了如何构建应用程序并将其部署到您
    发表于 08-28 06:12

    深度学习框架tensorflow介绍

    深度学习框架tensorflow介绍 深度学习框架TensorFlow简介 深度学习框架TensorFl
    的头像 发表于 08-17 16:11 1420次阅读

    TensorFlow将神经网络量化为8位

    随着TensorFlow Lite的推出,TensorFlow已经更新了量化技术和工具,您可以使用这些技术和工具来提高网络性能。 本指南向您展示如何量化网络,使其在训练过程中使用8位数
    发表于 08-10 06:01

    如何使用TensorFlow将神经网络模型部署到移动或嵌入式设备

    有很多方法可以将经过训练的神经网络模型部署到移动或嵌入式设备上。不同的框架在各种平台上支持Arm,包括TensorFlow、PyTorch、Caffe2、MxNet和CNTK,如And
    发表于 08-02 06:43

    使用Wio Terminal和Tensorflow Lite创建智能气象站

    电子发烧友网站提供《使用Wio Terminal和Tensorflow Lite创建智能气象站.zip》资料免费下载
    发表于 06-25 10:30 0次下载
    使用Wio Terminal和<b class='flag-5'>Tensorflow</b> <b class='flag-5'>Lite</b>创建智能气象站

    使用MTCNN和用于ESP32-S3的TensorFlow Lite进行人脸检测

    电子发烧友网站提供《使用MTCNN和用于ESP32-S3的TensorFlow Lite进行人脸检测.zip》资料免费下载
    发表于 06-13 15:28 0次下载
    使用MTCNN和<b class='flag-5'>用于</b>ESP32-S3的<b class='flag-5'>TensorFlow</b> <b class='flag-5'>Lite</b>进行人脸检测

    如何使用pycoral、tensorflow-lite和edgetpu构建核心最小图像?

    如果您能告诉我们如何使用 pycoral、tensorflow-lite 和 edgetpu 构建核心最小图像,我们将不胜感激。
    发表于 06-05 10:53

    如何使用meta-imx层中提供的tensorflow-lite编译图像?

    我们正在尝试使用 meta-imx 层中提供的 tensorflow-lite 编译图像。我们没有任何 自定义更改/bbappends (Highlight to read)sources
    发表于 05-29 06:55

    WEMOS D1 mini Lite连接WiFi的时间多少才合适?

    我有一个项目使用 WEMOS D1 mini Lite (ESP-8285) 在深度睡眠后发布一些数据 [框架:arduino,平台:espressif8266 - 版本:2.6.2,板
    发表于 05-08 06:13