ai算子是什么_百度AI攻坚战:PaddlePaddle中国突围

2023-10-27

8ca6fab138e1617f18ba00b7ef5994cd.png  作者 | 阿司匹林 出品 | AI科技大本营(ID:rgznai100) 2013年,百度开始研发深度学习框架PaddlePaddle,搜索、凤巢CTR预估上线DNN模型。   2016年,在百度世界大会上,百度宣布PaddlePaddle开源,标志着国产开源深度学习平台的诞生。   时间来到2019,人工智能已经进入商业落地的关键节点。   今年4月,在WaveSummit深度学习开发者峰会上,时任百度高级副总裁的王海峰为PaddlePaddle的战略地位进行了定调,并表示深度学习已经推动人工智能进入工业大生产阶段,而深度学习框架则是智能时代的操作系统。 2960f0d8a0d047a7f19d1beb15a4e06c.png 这一年对PaddlePaddle来说是至关重要的一年。国外强敌林立,PaddlePaddle的突围战开始从国外转向国内,除了给自己取了个中文名“飞桨”,还宣布重金投入和补贴,争抢中国AI开发者。   从此,PaddlePaddle的推进明显加速。   时隔半年,百度再次召开WaveSummit+深度学习开发者峰会,此时王海峰已经升任为百度首席技术官,PaddlePaddle的全景图也越来越越完善,也越来越清晰。   9f75c3139a4c7225c914b79c08fa7417.png 2019.4 c7817e740b6067736395c58a916febdf.png 2019.11   在短短的半年时间里,PaddlePaddle全新发布和重要升级21个产品,重点聚焦在两大方面:   1、平台易用性全方位提升,进一步降低了开发和训练部署的门槛; 2、更多强大的功能,让产业应用落地的更加便捷,真正解决产业应用的痛点。   这些新产品和新升级囊括了面向产业应用场景的四大端到端开发套件、融合数据和知识的预训练结合迁移学习的飞桨Master模式、端侧推理引擎Paddle Lite 2.0、EasyDL专业版、前沿技术工具组件等等。   比如全新发布端侧推理引擎Paddle Lite 2.0版本,打通端到端部署全流程,提升易用性,广泛的硬件支持。在原有的工具组件基础上,还全新发布3项深度学习前沿技术工具组件:联邦学习PaddleFL、图神经网络PGL和多任务学习PALM。   全新发布EasyDL专业版为算法工程师提供一站式AI开发平台。PaddleHub 则支持飞桨Master模式。所谓Master(大师)模式,指的是:算力+数据和知识+算法=产业级预训练模型,产业级预训练模型+迁移学习工具平台构成Master的核心,可以用于多种行业场景。   d91d99856f9febecbe13c77eda3c171d.png   可以看到,PaddlePaddle正在全面开放自己的AI能力,助力产业升级,这也契合了李彦宏在百度开发者大会上提出的产业智能化的概念。   接下来,营长将会从PaddlePaddle平台的整体框架出发,按照核心框架、基础模型库、端到端开发套件、工具组件和服务平台几大板块,为读者介绍完整的PaddlePaddle全景图。   c7817e740b6067736395c58a916febdf.png   PaddlePaddle是一个全面的开源开放平台,包含核心的开发、训练、部署框架,以及非常丰富的模型库。基于这个模型库,PaddlePaddle可以覆盖很多经典的应用场景,开发者可以进行二次开发,或者直接使用。在这个模型库的基础之上,PaddlePaddle还提供了端到端的开发套件,聚焦在人工智能领域的常见任务和场景。在端到端开发套件之上是一整套的工具组件,这些工具组件可以帮助开发者解决更多人工智能应用当中的问题。之后是服务平台,在这个服务平台上,开发者不仅可以基于算力做更多的人工智能应用开发,也可以在PaddlePaddle的实训平台上进行学习。同时,PaddlePaddle还提供很多部署的工具链,方便开发者部署自己的应用。

核心框架

首先看一下核心框架。一个深度学习开源框架包含几个非常关键的环节:一是算法开发,开发环节API的易用性、功能的完备性至关重要;二是训练,算法开发完成之后,需要有非常大规模的数据进行高速训练,提升研发效率;三是要把算法模型真正部署到应用场景中,需要一系列的部署工具,通过这些部署的链条进一步落地。

一、开发

  13cb121502d0d046da1fc6184a953a83.png   首先是开发框架易用性的全面提升,PaddlePaddle最近在GitHub上发布了核心框架的V1.6版本,里面包含了非常多的细节功能。   1)丰富的算子库:开发一个算法,计算的基本算子需要进一步完善和全面,目前PaddlePaddle已经支持AI领域几乎所有的模型。   2)简单高效的API接口:API接口是面向开发者最直接的一层,开发者需要更加方便便捷的API接口,主要体现在以下两个层面:   一是数据层。在真正的开发过程中,数据的IO非常关键,也是在开发深度学习应用时非常关键的环节。这次PaddlePaddle把IO接口做了全面梳理,易用性大幅提升。同时,IO的速度一直以来也是PaddlePaddle的优势,工业级IO的发布可以让开发者有更好的体验。   二是分布式训练的易用性。现在数据规模非常大,开发者往往需要进行分布式训练,单台机器无法完成。这种情况下,一个单机的应用程序如何快速地改成一个分布式训练的程序非常关键。利用升级后的PaddlePaddle平台,开发者只需要很少量的代码开发,就能够把一个单机的程序快速变成一个分布式训练的程序。   PaddlePaddle把工业领域常用的分布式训练的模型做了Benchmark。开发者可以很方便地找到快速把一个单机的程序变成一个分布式训练程序的程式,并且找到应用最为广泛的一些算法模型,用分布式来进行实现。在这里新增5行代码就能实现高效的GPU并行训练。      3)PaddlePaddle一直在不断完善开发文档的内容。PaddlePaddle一直提供中英双语的文档,这次PaddlePaddle对中文文档进行了非常多的升级和完善,尤其是API文档。  

二、训练

  bb3859fbda182eeba0dd55d589ffc2ac.png      除了深度学习框架的易用性,性能也是开发者非常关注的。性能可以体现在速度、内存管理上。PaddlePaddle平台的开发非常关注这两点,通过这个Benchmark,可以看到PaddlePaddle在这些方面取得的新进展。   首先是基于GPU的分布式训练。在GPU设备上,利用PaddlePaddle可以快速地做分布式训练的Benchmark。可以看到,PaddlePaddle的分布式训练有非常好的扩展性,跟其他框架相比,可以真正带来效率上的提升。      03aee957895d7481ec1fd300e128a342.png   其次是基于CPU的训练。GPU训练更多是在图像领域或者复杂的文本处理领域,很多的推荐场景还在用基于CPU的分布式训练。比如经典的Word2Vec的计算,通过百度自研的GUSGD方法,它的扩展性跟其他的框架相比有非常显著的领先优势,吞吐量可以达到对标产品的6倍以上。GUSGD为什么有这样的效果?因为Word2Vec模型的计算比较简单,大量的时间都在通信,GUSGD基于这个特点设计了一套全新的优化的方法,把计算和通信之间的Balance问题解决得很好,从而使整个吞吐有大幅的提升。

三、端到端部署

  f05ab96fae0f3e4f0ca94d257f2753c9.png   开发完成之后是部署,这个环节涉及的工作非常多。首先要适配不同的硬件,最新的PaddlePaddle新增了对于华为NPU的适配,以及对于边缘设备上FPGA的适配。同时,PaddlePaddle很快还会进一步发布跟寒武纪和比特大陆的适配工具。此外,硬件的加速在部署环节也非常关键的,它关系到部署推理的性能。再上面就是核心的Paddle Serving、Paddle Lite框架层。把底层硬件的细节屏蔽掉,开发者只需要关注这些接口就可以真正部署应用。此外,真实的应用当中都有非常苛刻的环境限制和要求,所以模型压缩非常重要。      d90b22b76a02233d23c133500edcb74f.png   可以看到,整个开发过程中,开发者需要先开发算法,然后进行训练,最后得到模型。这个模型在最终部署之前往往会进行量化、剪枝、蒸馏等处理,尤其是在移动设备端,开发者往往需要进一步压缩模型的体积。然后就是Serving,把它真正部署成一个服务,能够在线提供负载均衡等能力,真正作为一项服务使用。而PaddlePaddle可以打通端到端的全流程,方便开发者一站式完成全部任务。

1、PaddleSlim

ef98c53e03cf9bab5fbb2cbcbf76afa2.png   PaddleSlim的上一个版本已经支持剪枝、量化、蒸馏等方法,这次的升级重点主要体现在自动化网络结构设计方面。通过这种自动化网络结构的方法,可以根据硬件的特点,把硬件作为其中的一个约束条件进行搜索。比如开发者在基于某个硬件做部署时,既想保证精度,又要保证速度,把模型压缩的足够小,就可以利用PaddlePaddle的自动化网络结构搜索技术。PaddlePaddle这次升级也提供了更丰富的模型支持,同时把训练、压缩和部署全流程进行了打通,并保证了足够的性能。  
地址: https://github.com/PaddlePaddle/models/tree/develop/PaddleSlim

2、Paddle Lite 2.0   e4a559acb185c5d59a68e0d871a78cbf.png      Paddle Lite 2.0的编译、硬件适配能力和易用性都得到了大幅的提升,它有几个重要的特点:      一是高易用性。在移动端或边缘设备上开发应用程序涉及到非常多的设备环境的连调工作,PaddlePaddle提供了大量的事例代码以及操作指南,方便开发者在不同的设备场景上进行快速部署。      二是广泛的硬件支持。PaddlePaddle目前已经支持8种主流的硬件,同时新增了华为的NPU和边缘设备的FPGA。并且Paddle Lite 的设计非常便于硬件扩展。比如你有一个新的硬件,只要在Paddle Lite里新增这个硬件相关的Kernel即可,它跟其他的框架设计是高度解耦的。      dfba1fb3450b4234b633fe485a036c85.png 三是性能。这是Paddle Lite一个显著的优势,其性能优势不仅仅是在FP32这种场景下,在移动端已经广泛普及的INT8上,领先优势则更加明显。  
地址: https://github.com/PaddlePaddle/Paddle-Lite

基础模型库

406691bf5a094ad19c9e6a95cd6f1c75.png        PaddlePaddle的模型库已经支持自然语言处理、计算机视觉、推荐和语音。这次升级,PaddlePaddle官方支持的模型从60个扩充到了100多个。   c19bc3cdd565aabec7208dfdcd9d753e.png      PaddleCV在图像分类、生成、检测、视频理解等领域都有新增的模型,并开放了一些最领先的模型。另外,PaddleNLP在语义理解、阅读理解、对话这些场景上也做了开放。PaddleRec和Paddle Speech也都做了进一步的完善和升级。      同时,PaddlePaddle还开源了多个在2019年夺冠的一些算法模型,这里面包括在视频理解上取得冠军的模型。此外,在EMNLP 2019竞赛中获得10项阅读理解冠军的D-NET模型,PaddleNLP也已经支持。  
了解更多关于PaddlePaddle模型库的相关知识,请查看《PaddlePaddle大升级,比Google更懂中文,打响AI开发者争夺战》。

端到端的开发套件

24ef53651699f324d9a571014ef7e620.png      PaddlePaddle在本次峰会上重点发布了4个端到端的开发套件。这些开发套件有哪几个特点?一是真正的工业场景当中性能要足够高,二是开发的时候简洁易用,三是落地的时候足够高效。   69e422bf8ded0ec4755f31e662cd07d5.png      这4个套件面向的应用场景非常广泛,也非常集中。一是ERNIE模型,主要用于语义理解;二是PaddleSeg,主要用于图像分割;三是Paddle Detection,主要用于目标检测;四是ElasticCTR,主要用于个性化推荐。

一、ERNIE:语义理解

7a99e2705692cdaca5c36b4b01fc821b.png   ERNIE开发套件的核心能力在于预训练模型,尤其在中文领域。通过全景图可以看到,ERNIE开发套件有非常多的预训练的模型集,这个预训练的模型集不仅具备通用语义表示的能力,比如词的表示,句子的表示,篇章的表示等等。在通用语义表示的能力基础之上,ERNIE还提供了一些面向任务的专门优化的语义表示模型,以及领域相关的模型。   除了预训练模型,ERNIE开发套件还提供了一系列的工具,包括做迁移学习的Fine-Tuning工具。为了部署更方便,ERNIE提供了快速推理的工具。另外,ERNIE开发套件也提供了针对ERNIE的压缩能力,以及部署需要的Service的能力。在平台层面,开发者可以通过EasyDL平台的算力进一步使用ERNIE相关的模型。它的应用场景非常广泛,适用于各种各样NLP的任务。      858555f3b254c7fdb015803fd4b35eb0.png   ERNIE预训练模型里面有几个比较核心的元素:一是基于海量的数据和知识,二是多任务学习的能力,三是持续学习的过程。什么是持续学习的过程?ERNIE不是一次预训练就结束了,而是一个可持续学习的语义理解框架。通过这种方式,开发者可以不断往里面新增数据,整个模型的表示能力就会变得更强。同时,它还可以持续扩充数据,兼顾更多任务。   e7616b6383dab39c78fa7700b9fa4443.png      ERNIE开发套件的主要特点:支持各类训练任务Fine-tuning,保证极速推理Fast-inference API,兼顾灵活部署ERNIE Service,具备轻量方案ERNIE Tiny。   ERNIE模型在线部署的时候会遇到性能的瓶颈问题,ERNIE开发套件提供了一个轻量化的方案——ERNIE Tiny,包括数据蒸馏和模型蒸馏,通过数据蒸馏可以提升1000倍的速度。  
地址: https://github.com/PaddlePaddle/ERNIE

二、PaddleSeg:语义分割

    27f59f3215daf744dcba8af22dd00276.png      在视觉领域,语义分割有非常广泛应用的场景。这次升级的PaddleSeg包含了18个预训练模型,能够覆盖主流的网络。   PaddleSeg提供了全面的数据增强能力。因为在视觉领域,数据非常关键,尤其是数据的预处理对整体效果的影响非常大。模型框架层面,PaddleSeg提供了几乎所有的主流网络。在部署的环节,PaddleSeg提供了大量的辅助工具,方便开发者部署语义分割的技术和模型。      797226f6075dcf3506a5f3722719ad40.png PaddleSeg的几个主要特性:一、10+中数据增强策略提升了模型的鲁棒性;二、PaddleSeg几乎覆盖了主流的模型;三,性能得到了了全方位的提升;四,部署能力更加强大。跟一些主流的模型的对比,不管是单卡还是双卡上,训练的速度、利用率、显存的占用,以及可以训练的Max Batch Size,PaddleSeg都有显著的优势。      c65e62763fcf3cc7139f6d6b9c51d5ef.png   PaddleSeg的应用场景非常广泛,包括智能工业、智能图像、智能农业等等。利用PaddleSeg,模型部署后的预测性能比其他同类产品要提升20%以上。  
地址: https://github.com/PaddlePaddle/PaddleSeg

三、Paddle Detection:目标检测

     2955ac45f00b03d5b463ad2e95811803.png   图像分割和检测有非常密切的关联性。Paddle Detection发布了60多个预训练模型,并且包括多个在以往竞赛当中夺冠的算法模型。它提供了一整套的检测框架,方便开发者适配、调整算法。另外,Paddle Detection提供了大量的组块化模块,调整起来非常非常方便。   此外,Paddle Detection提供了非常多的小模型,所谓的小模型就是它能够在移动设备上跑得足够快。更多的小模型可以方便开发者在移动端设备使用目标检测功能。   Paddle Detection也跟PaddleSlim、PaddleLite的能力全面打通,开发者可以对检测模型进行快速压缩,并且适配到移动端设备,最后进行应用。      83ead50e74a182e6d23de380d56814eb.png   性能方面,用YOLOv3模型进行测试,Paddle Detection实现的速度是对标产品1.4倍。另外它的显存占用更少,降低了30%。   d2efedbbd5235c6560331baaa016ee64.png   车流的识别、安防监控等都非常依赖于目标检测技术,因此Paddle Detection有非常广泛的应用场景。  
地址: https://github.com/PaddlePaddle/PaddleDetection
 

四、ElasticCTR:个性推荐

     ee114289d61eb6cd2000c7b355fa697e.png   CTR预估模型在工业场景当中应用非常多,而且跟资源调度有非常紧密的关联。因此ElasticCTR目前跟Kuberflow和华为的Volcano进行了深度集成,并在分布式训练的环节提供了全异步的参数服务器技术,实现超大规模的CTR预估能力的工业化部署。ElasticCTR还提供了高性能的KV预估以及一键部署功能,方便开发者真正使用ElasticCTR的能力。   65e783422dff23f6b3bee31718ad04fd.png      性能方面,在大规模的数据场景中,ElasticCTR能够进行快速更新,并且工业级部署的性能是对标产品的13倍。  
地址: https://www.paddlepaddle.org.cn/documentation/docs/zh/1.6/user_guides/howto/training/deploy_ctr_on_baidu_cloud_cn.html#elastic-ctr

工具组件

     a83b7d29e65d9ae1811473fcef838e21.png   刚才介绍了框架层、模型层以及开发套件,接下来介绍几个重要的工具组件。  

一、PaddleHub:迁移学习

  f2ad9fd396f96f335f7738caaa00b871.png   首先是PaddleHub。PaddleHub集成了预训练模型和迁移学习的工具,这次的升级增加了两个核心能力:一是自动化调参,基于一键自动超参搜索;二是进一步夯实了一键模型化服务的能力,开发者可以很容易把自己想要用的模型快速变成服务。   25588dfd91f2d526c6ab77a7b6f43da9.png   为了提升易用性,PaddleHub的API采用了高层封装,包含迁移任务、迁移策略和数据处理等,方便开发者使用,在解决了开发效率的问题的同时,保持了灵活性。  
地址: https://github.com/PaddlePaddle/PaddleHub
     ae419bf0391ca2eb268832fd5930e0d2.png   此次峰会上,PaddlePaddle发布三个新的工具组件:一是PALM多任务学习组件,ERNIE模型里面用到的一个核心能力就是多任务学习,通过多任务学习,把多个任务的表示层进行共享,从而提升整个模型的效率;二是PGL图神经网络,在数据量非常大的情况下,也有非常好的模型建模能力,利用这种图神经网络,能够解决原来很多模型无法解决的问题;三是PaddleFL联邦学习。  

二、PALM:多任务学习

     9b951c8745cf406337010c02e572e555.png   PALM底层有很多基础的模块,包括一些预置的网络、学习任务和数据处理。同时PAML上层还有组装层,因为多任务学习需要很好的组装和调度。这也意味着,PALM已经替开发者做好了底层的工作。在运行环节,PALM提供了高效的运行和快速部署的能力,使得多任务学习在真正的实践任务当中可以应用的更广。目前,开发者只需要20行左右的代码,就可以同时训练多个任务来提升模型效果,比如文本分类等。  
地址: https://github.com/PaddlePaddle/PALM

三、PGL:图神经网络

12afa88bda1f310ba883bac8e43cc8d9.png   图神经网络的应用越来越广泛,尤其是在推荐场景,它的建模能力更加强大。这次PaddlePaddle正式发布了PGL 1.0版本,它有几个主要特性:一是高效,它充分利用了PaddlePaddle核心框架的LoD-Tensor(Level-of-Detail Tensor)进行消息聚合,使得速度有非常大的提升;二是易用性,PGL在接口的设计上进行了大量的工作,方便开发者使用;三是算法模型非常丰富;四是规模非常大,可以支持分布式的图引擎,支持10亿节点、百亿巨图的训练,PALM其实跟PaddlePaddle的分布式训练是一脉相承的,图的规模跟分布式训练的扩展能力有非常大的关系。     
地址: https://github.com/PaddlePaddle/PGL

四、PaddleFL:联邦学习

  34b6b827493978720b251d9290d6c075.png      联邦学习是针对数据隔离、数据安全等问题的一种解决手段。面向深度学习任务做联邦学习,有很多特有的挑战。PaddleFL主要是面向深度学习进行设计,包括几个比较重要的方面:一是联邦学习的策略,目前PaddleFL集成了比较多的横向、纵向联邦学习策略;另外,PaddleFL也集成了多种训练方法。它的应用场景非常多,目前百度已经开始在推荐场景中开始尝试使用联邦学习。     
地址: https://github.com/PaddlePaddle/PaddleFL

五、PARL:强化学习

700815afaf64ce1d651c17284d627215.png   PARL这次也有重要的升级,包括并行训练的接口、文档、算法等。强化学习在机器人控制领域有非常多的应用,利用强化学习做自动控制,有非常显著的优势,可以真正做自动控制。  
地址: https://github.com/PaddlePaddle/PARL

服务平台

  PaddlePaddle的全景图里面还有一层非常关键,就是全面的服务平台,这个服务平台给开发者提供了很多额外的价值。     

一、EasyDL

00932fac856da3f2a05e54ed32bf2de3.png   在经典版的基础上,PaddlePaddle这次新增了EasyDL专业版,开发者可以利用EasyDL的算力开发自己的AI模型。同时百度还面向零售等场景定制了EasyDL行业版。   02b9cf96beead6d7f40f654c58ded32e.png   EasyDL专业版主要包含以下几个特性:模型更加完善,数据服务更好,部署能力更灵活,而且支持飞桨Master模式,基于预训练模型进行快速的迁移学习和定制。此外,EasyDL提供了完善的数据标注服务,可以节约数据标注的成本,并且支持端云结合部署,以及公有云私有化部署。EasyDL已经成为一个面向AI模型开发和部署的全流程平台。     

二、AI Studio

  42ac3123a92de3e5276a842efeabb1aa.png   除了EasyDL,另外一个跟PaddlePaddle关联度非常高的是AI Studio平台。AI Studio是深度学习开发者学习、交流和开发实训的平台。AI Studio包含了大量的学习的课程和开源项目,以及大量的比赛。

三、EasyEdge

     de1f440925f8ae147c30617a6de2721f.png   EasyEdge平台的目的是为了进一步减少端计算开发者的工作量,降低模型部署的门槛。目前EasyEgde是基于Paddle Lite核心开发框架,提供软硬一体的能力给开发者使用。同时,EasyEdge把很多设备的兼容等问题进行了封装,开发者可以非常便捷地在多种硬件上快速开发。

生态!生态!生态!

  上个月的乌镇世界互联网大会,百度董事长李彦宏谈到了一个对未来的判断:“人工智能正在驱动数字经济向智能经济进化”。但是百度如何争抢人工智能时代的话语权?   2018 年 7 月,李彦宏在百度AI开发者上喊出了要让“Everyone Can AI”的口号,其实这句口号后面还要加上一个限定——“通过百度的AI平台”。  这也意味着,PaddlePaddle是这场攻坚战中的突破点之一。   7d7df99dc2bcf9fcc6eacbd203eab97d.png   在这次峰会上,百度也发布了完整的开发者激励计划:一是10多门课程进行全方位的免费开放;二是百度将辅助100多所高校,进行深度学习教育的培训;三是辅助1000企业,助力AI业务转型;四是发布百万级竞赛奖金,推动各种各样AI竞赛的开展;五是亿级GPU算力资源的支持,支撑开发者更好地使用PaddlePaddle平台。   4ab945d92d5ee937242a7d8dde4c8c5a.png   从个人开发者,到高校开发者,再到企业开发者,一切都是为了壮大PaddlePaddle的生态圈,促进百度的AI落地。   百度AI生态大战的炮声已经响起,这将是一场持久的攻坚战,而PaddlePaddle是这场战役的核心。只有让听到炮声的人呼唤炮火,才能看到PaddlePaddle的突围。

(*本文为AI科技大本营原创文章,转载请微信联系 1092722531)

精彩推荐

12月6-8日,深圳!2019嵌入式智能国际大会,集聚500+位主流AIoT中坚力量,100+位海内外特邀技术领袖!9场技术论坛布道,更有最新芯片和模组等新品展示!点击链接或扫码,输入本群专属购票优惠码CSDNQRSH,即可享受6.6折早鸟优惠,比原价节省1000元,学生票仅售399元

1c00fe82cd2775c30bde8e195266a4f1.png

推荐阅读

  • 十年公务员转行IT,自学AI三年,他淬炼出746页机器学习入门笔记

  • 这款“狗屁不通”文章生成器火了,效果确实比GPT 2差太远

  • 从词袋到Transfomer,NLP十年突破史

  • “12306”的架构到底有多牛?

  • 如何写出极致的代码?支付宝程序员有话说

  • 十行代码实现十亿图片检索,我们把它开源了

  • 首次落地中国大陆的OpenInfra:中国对于开源做出的贡献力量已不可忽视

  • 成也萧何,败也萧何?加密技术被恶意利用成为2019年最恶劣的攻击软件之一

  • 全民编程时代,程序员该如何保住饭碗?

    da1bf605a07363364f9cf8bf7790ecb2.png

你点的每个“在看”,我都认真当成了AI

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ai算子是什么_百度AI攻坚战:PaddlePaddle中国突围 的相关文章

  • 转: 边界值法:什么是上点,内点,离点

    以下转自 web http yzylion blog 163 com blog static 89406994200892784325898 什么是上点 内点 离点 2008 10 27 20 43 25 分类 默认分类 标签 it评论 字
  • 中文Python(3)Python语言中的占位神器pass语句

    中文Python 3 Python语言中的占位神器pass语句 Python作为一门高级计算机语言 其程序结构相对简单 同时又灵活多变 在编写程序时 我们经常需要考虑各种情况的处理 但有时候一些情况我们还没有想好如何去处理 这时候就可以借助
  • CUDA中的锁页内存 Page-Locked Memory详解

    Page Locked内存 运行时提供的函数允许使用锁页 也称为固定 主机内存 与 malloc 分配的常规可分页主机内存相反 cudaHostAlloc 和 cudaFreeHost 分配和释放锁页主机内存 cudaHostRegiste
  • maven使用及高级

    简介 maven工作全靠插件plugin maven的工作目标也是插件 管理插件 运行插件 安装 下载后 设置m2 home及path 使用mvn v命令检查安装是否成功 maven安装包非常小 因为maven被设计成将主要的指责委派给一组
  • PDF加密文件无法打印

    前几天遇到一个要打印的PDF可是打印的按钮就是无法使用 用wps打开后发现已被加密了 后在找解密方法时找到一个网站可以使用 这边暂且记着以后方便使用 http www pdfdo com pdf remove restriction asp
  • Truffle报'module'未定义错误解决方法

    在使用truffle compile命令时出现如下错误 只要把文件夹中的 truffle js 文件重命名为其他名字即可
  • ELK系列(八)、使用Filebeat+Redis+Logstash收集日志数据

    前面提到过 logstash占资源很大 filebeat更加轻量 一般都是组合使用 难免会有logstash宕掉的时候 这时候filebeat再往logstash里写数据就写不了了 这期间的日志信息可能就无法采集到了 因此一般都会采用red
  • uniapp实现村组数据多级联动

    选择了村的数据才会有组的数据 下面为接口的返回格式 首先是点击输入框 弹出u picker组件 下面是主要代码
  • 物联网概述

    1 1 物联网的定义和特征 1 物联网的定义 物联网的英文名称是 The Internet of things IoT 意即 物物相连的互联网 也就是说 物联网是在互联网基础上的延伸和扩展的网络 其用户端延伸和扩展到了任何物品与物品之间 进
  • SQL数据库自学

    SQL数据库 一 1 相关概念 数据库 数据管理系统 SQL 2 SQL通用语法 3 语句分类 1 DDL 数据定义语言 对数据库操作 对表操作 2 DML 对数据库中表的数据进行操作 添加数据 修改数据 删除数据 3 DQL 查询数据 基
  • sql注入时union出错(Illegal mix of collations for operation UNION)

    当union连接information schema时 就会出现Illegal mix of collations for operation UNION 经过一系列的检查发现之后 其实是union连接的字段的字符规则不一样 此方法只适用于
  • Django学习笔记-AcApp端授权AcWing一键登录

    笔记内容转载自 AcWing 的 Django 框架课讲义 课程链接 AcWing Django 框架课 AcApp 端使用 AcWing 一键授权登录的流程与之前网页端的流程一样 只有申请授权码这一步有一点细微的差别 我们在打开 AcAp
  • Flutter 单独页面状态栏颜色改变backgroundColor和statusBarColor

    1 flutter中如果整个应用状态栏颜色是同一种颜色 可以在main方法里设置 设置状态栏颜色 SystemChrome setSystemUIOverlayStyle const SystemUiOverlayStyle statusB
  • 使用 GDB 调试多进程程序

    文章内容在点击打开链接 set follow fork mode parent child parent fork之后继续调试父进程 子进程不受影响 child fork之后调试子进程 父进程不受影响 set detach on fork
  • 一个Java对象占用多大内存?

    一个Java对象占用多大内存 java中对象由对象头 实例数据 填充数据组成 虚拟机要求对象必须是8的倍数 对象头包括 markword和类型指针 以空对象Object为例 内容 32位 64位 markword 4byte 8byte 类
  • Lyapunov稳定性分析3(离散时间系统)

    Lyapunov稳定性分析3 离散时间系统 一 李雅普诺夫稳定性判定 1 1 Lyapunov 两类稳定性方法分析 1 2 总结 二 举例 2 1 MATLAB函数形式 2 2 MATLAB函数实例 三 离散Lyapunov方程的解 注 L
  • 输出漏斗

    本题要求你写个程序把给定的符号打印成沙漏的形状 例如给定17个 要求按下列格式打印
  • 端午节餐厅公众号推文就用来逗微信编辑器

    端午节营销不仅仅是一次营销 更是一次文化之旅 要充分挖掘端午节的文化价值 而不单纯挖掘其假日价值 不能将端午节当做一种简单的延续和继承 而是要通过各种与节日相关的 让顾客朋友积极参与的活动 与消费者之间形成互动 这才是餐厅营销的目的 端午节

随机推荐

  • ERP应收应付进阶操作与子流程--开源软件诞生29

    赤龙ERP应收应付进阶讲解 第29篇 用日志记录 开源软件 的诞生 进入地址 点亮星星 祈盼着一个鼓励 博主开源地址 码云 https gitee com redragon redragon erp GitHub https github
  • 错误 1 error LNK2019: 无法解析的外部符号 __imp__pthread_create,该符号在函数 _main 中被引用 解决方法

    错误 1 error LNK2019 无法解析的外部符号 imp pthread create 该符号在函数 main 中被引用 解决方法 参考文章 1 错误 1 error LNK2019 无法解析的外部符号 imp pthread cr
  • Windows/Linux C/C++任意键继续

    include
  • 数据仓库主题一(宽表模型设计)

    一 典型的数据仓库建模思想一般主流分为两种 第一种 ER模型是数据仓库之父父 Bill lnmon 提出的建模方法是从全企业的高度设计 3NF 模型 用实体关系 Entity Relationship ER 模型描述企业业 务 在范式理论上
  • C++的返回值优化

    引言 最近打算优化新项目的一个函数返回方式 最后发现有一个 C RVO 优化 网上查了查资料 自己学习了 在这里记录一下 1 从函数返回值 为了从一个函数得到运行结果 常规的途径有两个 通过返回值和通过传入函数的引用或指针 当然还可以通过全
  • UGUI文本字体颜色和大小等代码修改

    由于项目需求用UGUI在同个文本中显示出颜色和大小都不同的文字 我上网找个很久并没有见到相关的帖子 经过一番研究和总结最终解决了这个问题 UGUI如何在同一个text将字体改为不通的颜色和大小等 直接上效果图 更多内容请关注微信公众号 un
  • Java 反射的获取设置成员变量

    Java 反射的获取成员变量 文章记录学习过程 只供参考 1 获取成员变量们 Field getFields 获取所有public修饰的成员变量 Field getDeclaredFields 获取所有成员变量 不考虑修饰符 Field s
  • 起于编程,终于打工人

    我是一名来自西安的研0学生 本科是某双非一本 专业是通信工程 本科的我傻傻的只知道学习学习的知识 虽然学习成绩不错在专业前10 但是找工作时却屡屡碰壁 于是考研 现已经上岸某双非一本 导师的研究方向是机器视觉SLAM 跟嵌入式相关 所以我也
  • 自学Python去接单,一周就能赚取近1200块,你看不起的行业,真的很赚钱!

    放下手中的工作 你还有收入吗 除去每月的开销 还能剩多少呢 如果突然被辞退 能应付得来吗 不知道你有没有算过 一个家庭一辈子要花多少钱 1套房加装修至少150万 1个孩子培养到大学毕业至少100万 一家三口每年日常开销平均5万 30年就是1
  • 百度语音sdk集成java,[专栏作家]百度语音识别接入【Eclipse+Unity3D】

    原标题 专栏作家 百度语音识别接入 Eclipse Unity3D 运行效果 背景 现在我们要给我们的游戏接入百度语音SDK 让我们的游戏可以被声控 当我们说 上 游戏就响应上 下 游戏就响应下 左 游戏就响应左 右 游戏就响应右 或者听到
  • Error 42 error C2784:

    Error 42 error C2784 bool std operator lt const std Tree lt Traits gt const std Tree lt Traits gt could not deduce templ
  • bp神经网络时间序列预测,bp神经网络数据预处理

    怎么用已经训练好的BP神经网络进行预测下一个值 谷歌人工智能写作项目 神经网络伪原创 bp神经网络如何用于预测 如何人工神经网络来预测下一个数值 newff函数建立BP神经网络 历史数据作为样本 例如前n个数据作为输入 输入节点为n 当前数
  • C++ 多线程编程

    很有意义的几个博客或问答网址 https www zhihu com search type content q C 2B 2B E5 A4 9A E7 BA BF E7 A8 8B E7 BC 96 E7 A8 8B https www
  • 截获POST或GET请求提交的所有参数

    这里截获POST或GET请求提交的所有请求参数 并组成查询串返回 该方法用于将request中参数取出组成查询串后返回 param request HttpServletRequest return String 返回key1 value1
  • 红队隧道应用篇之NetCat使用(十一)

    简介 NetCat是一个通过TCP UDP在网络中进行读写数据工具 被行内称为 瑞士军刀 主要用于调试领域 传输领域以及黑客攻击领域 利用该工具可以将网络中一端的数据完整的发送至另一台主机终端显示或存储 常见的应用为文件传输 与好友即时通信
  • Python 和Java 哪个更适合做自动化测试?

    整理了一些软件测试方面的资料 面试资料 接口自动化 web自动化 app自动化 性能安全 测试开发等 有需要的小伙伴可以文末加入我的学习交流qun 无套路自行领取 大家好 从事软件测试很多年了 从各个大厂一路摸爬滚打 现在我有幸供职于字节跳
  • Jsoup之NoClassDefFoundError

    项目中需要用到jsoup解析网页 但是真正用的时候却报了NoClassDefFoundError异常 上了stackoverflow上寻找答案 发现这么一条答案 意思是关了multiDexEnabled后能好 但是项目方法数就是超标了 还非
  • 【C】为什么使用srand+rand()后每次产生的随机数都一样

    转载 https blog csdn net buku2010 article details 19404885 3E 当我把srand time 0 放入for循环中时 rand每次生成的都一样 for int i 0 i lt 1000
  • 清华大佬耗时36个小时,终于整理出来了一份Python自学计划,学不会退出IT界

    在人工智能的风口 Python这门胶水语言越来越火 很多小伙伴也开始学习Python 但是没有一份合适的学习规划怎么能行 今天特意为大家整理了一份Python自学计划 希望可以帮助到处在迷茫期的你们 这份自学计划是我精心整理的 包括了Pyt
  • ai算子是什么_百度AI攻坚战:PaddlePaddle中国突围

    作者 阿司匹林 出品 AI科技大本营 ID rgznai100 2013年 百度开始研发深度学习框架PaddlePaddle 搜索 凤巢CTR预估上线DNN模型 2016年 在百度世界大会上 百度宣布PaddlePaddle开源 标志着国产