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

    文章

    10871

    浏览量

    211941
  • 移动设备
    +关注

    关注

    0

    文章

    499

    浏览量

    54725
  • tensorflow
    +关注

    关注

    13

    文章

    329

    浏览量

    60537
  • TensorFlow Lite
    +关注

    关注

    0

    文章

    26

    浏览量

    642

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

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

收藏 人收藏

    评论

    相关推荐

    迅为RK3576开发板适用于ARM PC、边缘计算、个人移动互联网设备及其他多媒体产品

    计算、个人移动互联网设备及其他多媒体产品。 支持INT4/INT8/INT16/FP16/BF16/TF32混合运算,并凭借其强大的兼容性,可以轻松转换基于TensorFlow、MXNet
    发表于 12-27 14:18

    卷积神经网络的实现工具与框架

    TensorFlow是由Google Brain团队开发的开源机器学习框架,它支持多种深度学习模型的构建和训练,包括卷积神经网络。TensorFlow以其灵活性和可扩展性而闻名,适用于
    的头像 发表于 11-15 15:20 277次阅读

    第四章:在 PC 交叉编译 aarch64 的 tensorflow 开发环境并测试

    本文介绍了在 PC 端交叉编译 aarch64 平台的 tensorflow 库而非 tensorflow lite 的心酸过程。
    的头像 发表于 08-25 11:38 1117次阅读
    第四章:在 PC 交叉编译 aarch64 的 <b class='flag-5'>tensorflow</b> 开发环境并测试

    降低物联网开发门槛的TuyaOS重磅更新:AI赋能设备升级,配网速度10倍提升

    作为降低智能解决方案开发门槛的 TuyaOS 操作系统,此次又迎来了重大更新(点击查看 TuyaOS 完整介绍)! 本次 TuyaOS 3.10.0 版本发布了超丰富的开发框架,覆盖多
    的头像 发表于 07-22 11:47 307次阅读
    降低物联网开发门槛的TuyaOS重磅<b class='flag-5'>更新</b>:AI赋能<b class='flag-5'>设备</b>升级,配网速度10倍提升

    TensorFlow是什么?TensorFlow怎么用?

    TensorFlow是由Google开发的一个开源深度学习框架,它允许开发者方便地构建、训练和部署各种复杂的机器学习模型。TensorFlow凭借其高效的计算性能、灵活的架构以及丰富的工具和库,在学
    的头像 发表于 07-12 16:38 726次阅读

    使用TensorFlow进行神经网络模型更新

    使用TensorFlow进行神经网络模型的更新是一个涉及多个步骤的过程,包括模型定义、训练、评估以及根据新数据或需求进行模型微调(Fine-tuning)或重新训练。下面我将详细阐述这个过程,并附上相应的TensorFlow代码
    的头像 发表于 07-12 11:51 433次阅读

    TuyaOS重磅更新:AI赋能设备升级,配网速度10倍提升

    作为降低智能解决方案开发门槛的TuyaOS操作系统,此次又迎来了重大更新!本次TuyaOS3.10.0版本发布了超丰富的开发框架,覆盖多种协议连接和平台,可供开发者更快速便捷地接入涂鸦
    的头像 发表于 07-12 08:15 1174次阅读
    TuyaOS重磅<b class='flag-5'>更新</b>:AI赋能<b class='flag-5'>设备</b>升级,配网速度10倍提升

    bootstrap框架和vue框架的区别

    响应式移动优先的网页。Bootstrap的核心设计理念是“移动优先”,即优先考虑移动设备的显示效果,然后通过媒体查询等技术实现对不同设备的适
    的头像 发表于 07-11 09:55 888次阅读

    bootstrap框架用什么软件开发

    Bootstrap是一个流行的前端框架用于快速开发响应式和移动优先的Web应用程序。它提供了一套预定义的CSS和JavaScript组件,使得开发者可以快速构建出漂亮的用户界面
    的头像 发表于 07-11 09:50 526次阅读

    tensorflow和pytorch哪个更简单?

    TensorFlow和PyTorch都是用于深度学习和机器学习的开源框架TensorFlow由Google Brain团队开发,而PyTorch由Facebook的AI研究团队开
    的头像 发表于 07-05 09:45 882次阅读

    tensorflow和pytorch哪个好

    tensorflow和pytorch都是非常不错的强大的框架TensorFlow还是PyTorch哪个更好取决于您的具体需求,以下是关于这两个框架的一些关键点:
    的头像 发表于 07-05 09:42 696次阅读

    keras模型转tensorflow session

    和训练深度学习模型。Keras是基于TensorFlow、Theano或CNTK等底层计算框架构建的。TensorFlow是一个开源的机器学习框架,由Google Brain团队开发。
    的头像 发表于 07-05 09:36 552次阅读

    TensorFlow与PyTorch深度学习框架的比较与选择

    深度学习作为人工智能领域的一个重要分支,在过去十年中取得了显著的进展。在构建和训练深度学习模型的过程中,深度学习框架扮演着至关重要的角色。TensorFlow和PyTorch是目前最受欢迎的两大深度
    的头像 发表于 07-02 14:04 979次阅读

    多地发布设备更新“白名单”,仪器采购一触即发

    近日,多地发布设备更新服务机构、优势企业及产品的白名单,诸多仪器设备企业上榜,成为需求方设备更新
    的头像 发表于 05-23 09:10 445次阅读

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

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