法明子奥菲寺
由qubit |微信官方账号QbitAI制作
面向移动设备的TensorFlow框架TensorFlow Lite发布了重大更新,使开发者能够使用手机等移动设备的GPU来提高模型推断的速度。
与之前的CPU相比,新的GPU后端在人脸轮廓检测的推理速度上有了很大的提升。在Pixel 3和三星S9上,提升约4倍,在iPhone 7上,提升约6倍。
00-1010众所周知,使用计算密集型的机器学习模型进行推断需要大量的资源。
但是移动设备的处理能力和功率是有限的。虽然TensorFlow Lite提供了很多加速的方式,比如将机器学习模型转换为定点模型,但它总是在模型的性能或精度上做出让步。
然而,将GPU作为加速原始浮点模型的选项不会增加量化的额外复杂性和潜在精度损失。
在谷歌内部,GPU后端已经用于产品测试数月。结果表明,该方法确实能加快复杂网络的推理速度。
在Pixel 3的人像模式下,与使用CPU相比,使用GPU的Tensorflow Lite,用于抠图/背景模糊的前景-背景分离模型加速了4倍以上。新的深度估计模型已经加速了10倍以上。
在可以给视频添加文字、滤镜等特效的YouTube Stories,以及Google的相机AR功能游乐场贴纸中,各种手机上实时视频分割模型的速度提升了5-10倍。
对于不同的深度神经网络模型,使用新的GPU后端通常比浮点CPU快2-7倍。四个公共模型和两个谷歌内部模型的基准测试结果如下:
对于更复杂的神经网络模型,例如密集的预测/分割或分类任务,GPU加速是最重要的。
在相对较小的机型上,加速的效果没有那么明显,CPU的使用有利于避免内存传输中固有的延迟成本。
为什么要支持GPU?
安卓设备(使用Java),谷歌发布了完整的安卓存档(AAR),包括带有GPU后端的TensorFlow Lite。您可以编辑Gradle文件,用AAR替换当前版本,并将以下代码片段添加到Java初始化代码中。
//用GPU委托初始化解释器。
GpuDelegate委托=new GpuDelegate();
翻译。选项选项=(新解释器。Options())。addDelegate(委托);
解释器解释器=新的解释器(模型,选项);
//运行推理。
while(true){ 0
writeToInputTensor(输入者);
解释器. run(inputentsor,outputTensor);
readFromOutputTensor(输出张量);
}
//清理。
delegate . close();
在iOS设备中(使用C),首先下载TensorFlow Lite的二进制版本。
然后更改代码,并在模型创建后调用ModifyGraphWithDelegate()。
//用GPU委托初始化解释器。
STD : unique _ ptrInterpreter解释器;
解释器(模型,op_resolver)(解释器);
auto * delegate=new gpudelegate(null ptr);//默认配置
if(解释器-modify graph withedelegate(委托)!=kTfLiteOk)返回false
//运行推理。
while(true){ 0
WriteToInputTensor(解释器类型的_ input _ tensorfloat(0));
if(解释器-Invoke()!=kTfLiteOk)返回false
ReadFromOutputTensor(解释器类型的_ output _ tensorfloat(0));
}
//清理。
解释器=nullptr
DeleteGpuDelegate(委托);
(更多教程请参考TensorFlow官方教程,门户在文末)
00-1010只是TensorFlow Lite的开发者预览版。
新的GPU后端在安卓设备上使用OpenGL ES 3.1计算着色器,在iOS设备上使用金属计算着色器。
支持的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、resform v1、RESIZE _双线性v1、SOFTMAX v1、STRIDED_SLICE v1、SUB v1、TRANSPOSE_CONV v1
TensorFlow官方表示,未来将扩大运营范围,进一步优化性能,开发定型API。
的完整开源版本将于2019年晚些时候发布。
00-1010使用教程:
https://www.tensorflow.org/lite/performance/gpu
完整的项目文档:
https://www.tensorflow.org/lite/performance/gpu_advanced
博客地址:
https://midium.com/tensor flow/tensor flow-lite-now-fast-with-mobile-GPU-developer-preview-e 15797 e6de 7
结束-
真诚招聘
量子正在寻找一名编辑/记者,在北京中关村工作。期待有才华和热情的学生加入我们!详情请回复QbitAI对话界面的“招聘”二字。
Quantum qkitai头条签约作者
跟踪AI技术和产品的新趋势。