深度学习算法C++部署代码开源库说明文档

Posted yhwang-hub

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了深度学习算法C++部署代码开源库说明文档相关的知识,希望对你有一定的参考价值。

一、前言

随着技术的不断发展,深度学习算法也在不断更新迭代,无论是2D目标检测、3D目标检测,还是语义分割、实例分割,车道线检测、深度估计等领域相关算法也在不断更新,虽然可选择的算法很多,但是我们面临的一个重要的问题是如何将常用的深度学习算法更加快捷方便的去部署到自己的硬件上,近几年来,随着AI芯片的不断发展,各大厂商相继推出自己的高算力AI芯片,也相继开发属于自家硬件的AI工具链,在此之前,各大自动驾驶公司使用最多的当属英伟达的芯片,起初有低算力的TX2,再到较高算力的Xavier,去年更是发布了INT8算力高达256TOPS的Orin,算力的提升及生态的完善使得英伟达的硬件在市场上占据主导位置,英伟达的工具链CUDA、TensorRT也在不断更新迭代,新版本的更新不断覆盖低版本无法解决的问题,但是英伟达的芯片面临的问题便是价格昂贵,虽然与英伟达同处竞争行列的高通也有属于自家的AI芯片及工具链,但是SNPE、OPENCL一直不温不火,无论是生态还是算力均不如英伟达,不过高通的8155及相关系列AI芯片主要用于智能驾驶座舱的开发,随着国产化的趋势,国内很多家芯片公司也开始纷纷推出自己的AI芯片,比如地平线、华为等,不同的芯片都有着自己的部署框架。

二、深度学习模型部署综述

参考https://mp.weixin.qq.com/s/EAO7bLPNDthw5gOWmZvdNw

三、深度学习模型部署开源库

源码:https://github.com/yhwang-hub/dl_model_deploy
该开源项目记录了经典深度学习模型在不同框架(x86)中的部署,致力于帮助大

微信正在用的深度学习框架开源!支持稀疏张量,基于C++开发

鱼羊 发自 凹非寺
量子位 报道 | 公众号 QbitAI

微信正用着的深度学习框架,现在你也可以上手试一试了。

就在最近,腾讯把这个名叫deepx_core的深度学习基础库正式对外开源。

相比于PyTorch、TensorFlow等流行深度学习框架,这位选手不仅具有通用性,还针对高维稀疏数据场景进行了深度优化。

也就是说,对于开发搜索、推荐、广告这样的深度学习应用,会更加友好易用。

具体是怎么一回事,不妨一起来了解一下~

一个张量计算/深度学习基础库

根据项目介绍,deepx_core是一个通用的深度学习框架,使用C++11开发。基于deepx_core,可以快速开发张量计算/机器学习/深度学习/强化学习/图神经网络/无监督学习等应用。

关于deepx_core的特点,不妨先从张量说起。

张量是deepx的核心数据结构,有以下几种类型。

微信正在用的深度学习框架开源!支持稀疏张量,基于C++开发

其中,float_t是单精度浮点数,int_t是64位无符号整数。

值得一提的是,稀疏张量一直是开源框架的痛点,但像搜索、推荐等算法应用,其实都是高维稀疏数据场景。

为此,deepx_core设计并实现了稀疏张量和配套的operation,以原生的方式实现了稀疏模型。

在分布式训练场景下,稀疏张量均匀分布在多台参数服务器上,模型规模能随着参数服务器数量增加而线性扩展。

deepx_core的另一个重要模块,是计算图。

微信正在用的深度学习框架开源!支持稀疏张量,基于C++开发

具体而言,deepx_core提供了一个支持自动求导的静态图引擎,支持100+ operation,覆盖几乎所有网络类型。

计算图引擎通常用在各种深度学习任务中。而一个完整的深度学习应用,主要包括以下模块的开发和使用:

  • 样本解析器

  • 特征抽取

  • 计算图

  • 优化器

在deepx_core中,样本解析器和优化器都是单独的模块。在内置样本解析器、优化器无法满足需求的情况下,都可以通过继承来增加新的解析器、优化器。

另外,因为基于C++开发,deepx_core具有高性能和跨平台的特点。

根据官方实验数据,基于deepx_core解决方案的性能普遍是开源框架的5-10倍。

安装使用

如果你想亲自试试这个新开源框架,那么需要先准备一个支持C++11的编译器来进行编译。

make -j8

再跑一下单元测试。

make -j8 test

然后安装即可。

make -j8 install PREFIX=/where/you/want/to/install

已有落地应用

最后,简单介绍一下项目背后的开发团队。

deepx_core的开发者来自微信看一看算法平台团队。

据介绍,在正式开源之前,deepx系列机器学习项目已经在腾讯内部经过了3年多的迭代。

微信看一看、微信搜一搜、微信支付、微信表情、微信视频号、微信小程序、微信读书、QQ音乐、应用宝、腾讯新闻、腾讯课堂、腾讯黑产打击等排序/召回场景中,都已经有deepx_core及其衍生项目的落地。

微信正在用的深度学习框架开源!支持稀疏张量,基于C++开发

说起来,鹅厂近年来在开源方面确实没少下功夫。

根据腾讯2020年度《腾讯研发大数据报告》,腾讯目前深度参与了数十个国际知名开源项目的贡献,并在OpenJDK、KVM等开源社区的贡献榜上,攀至国内第一。

辣么,你可曾用过鹅厂的开源项目?欢迎在评论区分享经验~

传送门


完 —

本文系网易新闻•网易号特色内容激励计划签约账号【量子位】原创内容,未经账号授权,禁止随意转载。

推荐阅读


有奖问卷 | 智能汽车哪家强

你怎么看智能汽车呢?一个三分钟问卷,让我们看看现在智能汽车有多大的影响力了~ 填完问卷有抽现金红包的机会哦,据说中奖率还蛮高的~( • ̀ω•́ )✧




一键三连「分享」、「点赞」和「在看」

科技前沿进展日日相见~


以上是关于深度学习算法C++部署代码开源库说明文档的主要内容,如果未能解决你的问题,请参考以下文章

微信正在用的深度学习框架开源!支持稀疏张量,基于C++开发

工具 | Facebook 开源产业级深度学习框架 Caffe2,带来跨平台机器学习工具

深度学习Heartpy心电图分析

在Android上部署深度学习模型之ncnn库的编译

在Android上部署深度学习模型之项目结构

开源 | 雅虎BigML团队开源大数据分布式深度学习框架TensorFlowOnSpark