当前位置: 首页 > 编程日记 > 正文

薅百度GPU羊毛!PaddlePaddle大升级,比Google更懂中文,打响AI开发者争夺战

640?wx_fmt=png


记者 | 阿司匹林

出品 | AI科技大本营(ID: rgznai100)


深度学习已经推动人工智能进入工业大生产阶段,而深度学习框架则是智能时代的操作系统。


在4月23日下午的Wave Summit深度学习开发者峰会上,百度高级副总裁王海峰开场就为深度学习框架PaddlePaddle在百度内部的战略地位进行了定调。


王海峰表示,人类已经经历了三次工业革命:机械技术、电器技术以及信息技术,而这些都是从一个行业开始,然后扩展到各行各业,直到我们生活的各个角落。而这些为我们的生活带来深刻变革的技术往往有很强的通用性,包括标准化、自动化和模块化。如今,我们正进入第四次工业革命——智能时代,而人工智能是第四次工业革命核心驱动力量。


人工智能经历了人工规则、机器学习,而深度学习的出现则带来了很多新的变化,包括语音识别、语音合成、计算机视觉、自然语言处理、机器翻译等等都因为深度学习取得了更好的效果。王海峰认为,深度学习技术已经具备了很强的通用性,正在推动人工智能进入工业大生产阶段,呈现出标准化、自动化和模块化的特点。深度学习框架承上启下,下接芯片、大型计算机系统,上承各种业务模型、行业应用,是智能时代的操作系统。


作为最早研究深度学习技术的公司之一,百度早在2013年即设立了深度学习研究院,并于2016年正式开源深度学习框架,而PaddlePaddle也身负百度抢占人工智能时代高地的重要使命。


在发布几年之后,PaddlePaddle不再与TensorFlow、PyTorch等正面竞争,而是开始强调自己更懂中文,更懂中国开发者,以及更加专注于深度学习模型的工业生产和部署,并给自己取了个中文名「飞桨」。


为笼络开发者,现场百度深度学习技术平台部总监马艳军还宣布了“1亿元” 的AI Studio算力支持计划,为开发者免费提供昂贵的计算资源。


在此次的技术升级中,PaddlePaddle除了发布了11项新特性及服务,还首次展示了PaddlePaddle的全景图和未来的Roadmap,更加凸显了PaddlePaddle的战略地位。


PaddlePaddle全景图


640?wx_fmt=png


PaddlePaddle可以分为核心框架、工具组件、服务平台。


核心框架支持从开发到训练到预测,以及智能推荐工具集PaddleRec、NLP工具集PaddleNLP、计算机视觉PaddleCV工具集,并且支持超过60个模型。


工具组件则包括预训练模型管理框架PaddleHub,强化学习框架PARL,基于PaddlePaddle的AutoDL技术实现AutoDL Design,数据可视化工具库VisualDL,以及支持弹性深度学习计算的EDL。


服务平台则主要由可定制化训练深度学习模型的EasyDL以及一站式开发平台AI Studio组成。EasyDL目前已经支持图像识别、文本分类、声音分类等深度学习模型的训练,而AI Studio则集合了AI教程、代码环境、算法算力、数据集和比赛,属于百度大脑的深度学习实训平台。


而此次重磅发布的更新则涉及11项新特性及服务,包含PaddleNLP、视频识别工具集、Paddle Serving、PaddleSlim、AutoDL Design等多种深度学习开发、训练、预测环节。


开发环节


640?wx_fmt=png


PaddleNLP


PaddlePaddle支持CV、NLP以及推荐系统三大类别的一系列模型算法,目前官方能够支持的模型数量已经超过60个,而且已经经过真实业务场景的验证。


PaddleNLP一直是PaddlePaddle的核心组件,囊括了诸多工业级中文NLP算法和模型库,涵盖文本分类、序列标注、语义匹配等多种NLP任务的解决方案,而这一次百度对又PaddleNLP进行了中大升级。


首先,百度把NLP这个领域的模型做了一套共享骨架代码,每一个模型都可以用同一套API和类似的模式,大大降低了操作的复杂程度;其次,这个工具包可以支持主流的中文处理任务,并且能够实现工业级的应用效果。


640?wx_fmt=png


PaddleNLP由基础网络层和应用任务层构成。基础网络层是表示层,包括语义表示、语言模型、序列标注、文本分类、语义匹配、语言生成与复杂任务等组网集合。


  • 分类组网集:可用于文本分类的深度学习网络结构,输入为文本中每个字、词的ID,输出为文本属于各个类别的概率。包括:BOW、CNN、GRU、LSTM、BiLSTM。


  • 语义表示组网集:可用于文本表示的深度学习网络结构,输入为文本中每个字、词的ID,输出为文本中每个字词的embedding。包括:BERT、ELMo、ERNIE。


  • 语义匹配组网集:可用于计算短文本相似度的深度学习网络结构,输入为两个文本中每个词的ID,输出为二者的相似度得分。包括:BOW、CNN、GRU、LSTM、MMDNN。


  • 序列化标注组网集:可用于计算序列标注的深度学习网络结构,输入为文本中每个字的ID,输出为文本中每个字所属各个标注的概率。目前主要有BiGRU-CRF。


  • 语言模型组网集:可以用于计算句子概率的深度学习网络结构,目前主要有LSTM。


  • 复杂模型组网集:可以处理复杂任务的深度学习网络结构,包括阅读理解、对话等任务。包括:BERT、BiDAF。


基于这些网络结构,同时再配套任务相关的工具和数据,PaddleNLP可以实现一系列的应用任务,包括词法分析、情感分类等,未来百度还会进一步扩充PaddleNLP的能力。


640?wx_fmt=png


PaddleNLP还集成了百度近期发布的最新语义表示预训练模型——ERNIE。马艳军表示,ERNIE把中文领域处理的一些知识融入到建模的过程当中,从而提升整个语义表示的效果,它很多中文任务上它的Benchmarck都比现在最好的效果要好不少。


640?wx_fmt=png


此外,PaddleNLP的另一大亮点则是在模型训练阶段可灵活切换基础网络结构,在任务预测过程中可灵活组合训练好的模型,大大提高了模型开发的灵活性。


视频识别工具集


640?wx_fmt=png


除了NLP工具集,此次更新的还有视频识别的工具集。这个工具集覆盖当前7个经典的视频分类模型,包括TSN、Non-Local、stNet、TSM、Attention LSTM、Attention Cluster、NextVLAD。这些模型共享同一套配置文件,并且在数据的读取、评估等方面共享一套代码,并使用统一的训练和预测的框架。


640?wx_fmt=png


据介绍,这些视频理解的技术已经在很多场景下得到了应用,并且已经在诸多百度产品上广泛使用。


训练环节


针对训练环节,PaddlePaddle也发布了两项重要升级:第一是大规模分布式训练的能力升级,第二是工业级数据处理能力的升级。


大规模分布式训练

 

640?wx_fmt=png


对于大规模分布式训练,PaddlePaddle推出了三个主要特性:


  •    全方位支持多机多卡,速度提升。


  •    在CPU的应用场景,针对大规模稀疏特征,PaddlePaddle设计并且开放了大规模稀疏参数服务器,开发者可以下载相关的镜像。


  •    大规模分布式训练支持在各种容器上高速运行,如今在K8S这个生态下也可以使用PaddlePaddle进行训练。


640?wx_fmt=png


针对多机多卡的训练场景,在ResNet50数据集上进行测试,保持精度不变的情况下,FP16的训练速度要比FP32要快很多。此外,PaddlePaddle还做了带宽不敏感的技术,在ResNet50数据集上,带宽不敏感相关的技术在性能和效果方面也有非常出色的表现。

    

640?wx_fmt=png


在CPU场景下进行基于个性化点击率预估任务场景测试,可以发现,不同并发资源下单位时间的吞吐量,不同的Batch Size下面加速比,都呈现线性的增长状态,可以直接应用到工业场景。


预测环节


模型在训练和开发完整之后需要部署到各个应用场景,这里面涉及到几个重要环节。首先,我们需要高速的推理引擎;在这个基础之上,为了部署在更多的硬件上,我们常常需要做模型压缩;最后,为了真正投入使用,还需要有相应的硬件。

  

640?wx_fmt=png


上图是PaddlePaddle完整的端到端的全流程部署方案。


底层:在服务器端,PaddlePaddle已经支持了比较主流的CPU和GPU;在移动端,PaddlePaddle支持多种CPU和GPU,包括ARM的CPU以及Mali GPU等。对其他硬件的支持也正在快速扩充中。


推理引擎:在底层硬件之上就是推理引擎,一方面是底层的加速库,另外就是在服务器端和移动端做推理的能力。


多语言支持:PaddlePaddle目前已经支持Python、C++,后续还会支持JaveScript等编程语言。


工具:PaddlePaddle这次正式发布的是一整套压缩工具,可以不同的端上把模型压到最小,同时又不损失精度。


方案与服务:此外,PaddlePaddle还提供完整的方案,比如专用的硬件和部署的手册说明等等,方便开发者部署和使用。


推理引擎


640?wx_fmt=png


PaddlePaddle在推理引擎方面做了大量工作,能够实现推理加速,提升用户的体验。据介绍,跟某主流框架的对比,在不同的GPU场景下,PaddlePaddle在多个模型推理的速度上展现了非常显著的加速效果。

    

640?wx_fmt=png


另外,在移动端(ARM处理器),用MobileNet进行测试,PaddlePaddle也实现了很好的效果。


Paddle Serving


640?wx_fmt=png


针对服务器端,此次PaddlePaddle也终于开放了Serving的能力,可以实现模型从训练到上线服务器的无缝对接。Paddle Serving还内置了诸多模型,可以实现批量预测。其架构图显示,Paddle Serving有离线的准备和在线的实现,另外还有基本的Built-in的一些预处理执行器。


Paddle Serving可以提供非常完备的在线服务能力,包括单服务多个模型,包括多版本的模型A/B Testing,模型的热更新等等这些能力。硬件也是可扩展的,包括CPU、GPU。同时,还有内置了多个模型服务,包括图像分类、文本分类等。


PaddleSlim

    

640?wx_fmt=png


在移动端部署深度学习模型常常要考虑模型的大小,因此模型压缩的能力在移动端的场景下是一个刚需。PaddleSlim做了参数集中管理,可以对模型进行自动压缩,并且提升了操作的便利程度,开发者只需要两行Python代码就可以调自动化的模型压缩能力。目前PaddleSlim支持三种主要的压缩能力,包括剪枝、量化以及蒸馏的方法。


工具


除了从开发到训练到部署的全流程,PaddlePaddle还更新了几款工具组件:自动化网络设计工具AutoDL Design,强化学习工具PARL,以及预训练一站式管理工具PaddleHub。

    

AutoDL Design


640?wx_fmt=png


AutoDL是一种高效的自动搜索构建最佳网络结构的方法,通过增强学习在不断训练过程中得到定制化高质量的模型。系统由两部分组成,第一部分是网络结构的编码器,第二部分是网络结构的评测器。这次PaddlePaddle发布的AutoDL Design的版本,主要是基于PaddlePaddle和PARL来实现,并且已经开源。


PARL


640?wx_fmt=png


PaddlePaddle针对强化学习的工具PARL进行了诸多升级,在算法覆盖、高性能通讯以及并行训练方面做了大量的支持和扩展。百度前一段时间在NeurIPS获得AI假尸挑战赛冠军的模型,运用了Target Driven DDPG + Bootstrapping的方法实现,并取得了很好地效果。

    

PaddleHub


640?wx_fmt=png


PaddleHub是基于PaddlePaddle开发的预训练模型管理工具,可以借助预训练模型更便捷地开展迁移学习工作。利用这个平台,只需10行左右的代码就可以实现迁移学习,从而在自己的任务场景下使用。


架构图显示,PaddleHub封装了一系列的NLP和CV领域的数据集,同时还在数据的处理方面做了Reader封装。PaddleHub目前已经支持5大类的预训练模型,包括Transformer分析等等,还有几类模型会在后续陆续开放。同时,PaddleHub还支持文本分类、序列标注等任务场景下的迁移,并提供了两种优化策略来提升迁移学习的效果。最后,PaddleHub还提供Finetune API和命令行,保证开发者可以快速使用PaddleHub来做迁移学习。

    

Roadmap


640?wx_fmt=png


在2016年百度开源了PaddlePaddle,并且在2017年、2018年的时间内陆续把PaddlePaddle Fluid新一代的深度学习框架做了完善,并发布了稳定的1.0版本。根据PaddlePaddle的Roadmap,7月PaddlePaddle还会发布Fluid动态图分布式训练的功能,以及会新增流水线并行的能力,分布式训练会变得更快。11月PaddlePaddle会实现动态图的能力与静态图的灵活转换,让开发更加便捷,兼顾效率和性能。


2019年7月:


  • 动态图基本功能完善,新增流水线并行能力

  • 提供视觉检测、生成工具集,使用文档全面优化

  • 显存占用优化,静态图训练速度全面提升

  • 优化高速推理引擎,支持在更多硬件的快速扩展,完善支持半精度


2019年11月:


  • 动态图实现与静态图灵活转换,支持高层 API

  • 动态图训练速度全面优化

  • PaddleHub 升级到 2.0,基于最完备的预训练模型库进行迁移学习

  • 多项行业应用解决方案发布


“1亿元” 笼络人心


想要笼络开发者的心,单靠这些功能更新显然不行,毕竟TensorFlow、PyTorch等已经十分强大。因此百度还推出了“1亿元”的AI Studio算力支持计划。


640?wx_fmt=png


马艳军介绍,开发者可以免费申请使用工业级应用的一些旗舰型的GPU硬件,这次主要是V100,另外还提供免费、免安装的集成环境,直接上手使用。


具体的使用模式有两种,第一种是一人一卡的模式,包括16G的显存,最高2T的存储空间。第二种是远程集群模式,开发者只要登录AI Studio做预测,就可以免费使用上面的算力资源。


除了免费算力,PaddlePaddle还会提供各种深度学习的培训、认证等等,壮大自己的朋友圈,打造自己的开发者生态,让更多开发者来使用百度云服务,最终实现AI的商业化落地。


2018年7月,李彦宏在百度AI开发者上喊出了要让“Everyone Can AI”的口号,PaddlePaddle具有重要的战略地位。不过,CSDN的《2018-2019中国开发者调查报告》显示,目前国内绝大部分的开发者依然选择主流的深度学习开发框架,PaddlePaddle依然任重道远。


*关注AI科技大本营,后台回复关键字「paddle」获取完整PPT。


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


长三角开发者联盟

代码就是力量,长三角的开发者联合起来!

加入「长三角开发者联盟」将获得以下权益

长三角地区明星企业内推岗位
CSDN独家技术与行业报告
CSDN线下活动优先参与权
CSDN线上分享活动优先参与权

我们希望你是:位于长三角地区(上海、江苏、浙江等)优秀开发者。扫码添加联盟小助手,回复关键词“长三角4”,加入「长三角开发者联盟」。

640?wx_fmt=jpeg

推荐阅读:

  • 特斯拉全新自动驾驶芯片最强?英伟达回怼,投资者用脚投票

  • 用Python实现OpenCV特征提取与图像检索 | Demo

  • 用Python做数据分析,这些基本数据分析技术你知道吗?

  • Jupyter/IPython笔记本集合 !(附大量资源链接)-上篇

  • 西安奔驰女车主哭诉维权背后, 区块链究竟能否还消费者以尊严?

  • 深入浅出Docker 镜像 | 技术头条

  • 微软 GitHub 旗帜鲜明抵制 996!

  • 源码泄露是裁员报复还是程序员反抗 996?

  • 她说:为啥程序员都特想要机械键盘?这答案我服!


640?wx_fmt=png

点击“阅读原文”,了解更多活动信息。

相关文章:

vue中axios如何实现token验证

title: vue中axios如何实现token验证 date: 2018-02-08 17:50:07 tags: [axios,vue] 继上篇实现Auth认证之后,然后每个跳转页面都会在后端验证token的存在 然后那天晚上通过模仿Auth发送请求,发送成功(上篇末尾的方式) 但是今天再继续写,发现每个页面请求都要发送token验证 就比…

【视频】视频方面大神博客总结

1、雷霄骅博客 [总结]视音频编解码技术零基础学习方法:雷神对音视频技术的总结,包括:视频播放器原理、流媒体协议、封装格式、视频编码、音频编码、网络视音频平台对比。首先对雷神的顶礼膜拜,学完这篇博客,就算跨入音…

IHttpHandler 在SharePoint中的应用

1. 一个文件名为VCChartHandler.ashx&#xff0c;其文件代码为: <% WebHandler Language"C#" Class"VCSharePoint.BL.VCHandler,VCSharePoint, Version1.0.0.0, Cultureneutral, PublicKeyToken0134fd28ed40d3b2"%>2. 另一个类为VCHandler.cs的文件…

普通人也能用AI拍出3D大片?这位清华博士后这么做

从《阿凡达》到《流浪地球》&#xff0c;从好莱坞科幻 3D 电影之最到中国科幻 3D 电影之最&#xff0c;从 2009 年到 2019 年&#xff0c;近十年的岁月&#xff0c;见证了中国 3D 影视制作的快速成长和繁盛&#xff0c;也刺激着赵天奇探索人工智能与影视制作结合应用的信心。影…

[asp.net core]SignalR一个例子

摘要 在一个后台管理的页面想实时监控一些操作的数据&#xff0c;想到用signalR。 一个例子 asp.net coresignalR 使用Nuget安装包&#xff1a;Microsoft.AspNetCore.SignalR 在StartUp中启用signalR // This method gets called by the runtime. Use this method to add serv…

【FFmpeg】截至ffmpeg4.2不推荐(Deprecate)继续使用的接口,以及代替它的接口汇总

1、问题描述 使用ffmpeg库写程序,编译时,经常报警告“xxx is deprecated” 查看源码时,该接口或结构体字段被标记attribute_deprecated,表示它已经过时,不推荐使用。 如: attribute_deprecated void avcodec_register(AVCodec *codec);attribute_deprecated void avcod…

Asp.net开发过程中,我们会遇到很多Exception

在Asp.net开发过程中&#xff0c;我们会遇到很多Exception&#xff0c;不处理这些Exception的话会出现很难看的页面。还有一些我们未预料到的Exception&#xff0c;当发生Exception时&#xff0c;我们也必须进行记录具体位置&#xff0c;以便我们修正错误。asp.net异常处理的位…

【经验】对一个合格C++高级工程师(音视频方向)的要求

1、C高级工程师 经过查看招聘网站上对“C高级工程师”这个职位的招聘要求&#xff0c;只总结了技术、能力要求&#xff0c;不涉及工作年限、学历 具体要求如下&#xff1a; 精通C面向对象程序设计&#xff1b; 熟悉设计模式&#xff1b; 敏捷开发经验&#xff1b; 扎实数据结…

马云:腾讯不是阿里要打败的对手,是同为社会创造价值的伴侣

整理 | 琥珀出品 | AI科技大本营&#xff08;ID:rgznai100&#xff09;近日&#xff0c;在甘肃敦煌举办的 2019 年中国绿公司年会上&#xff0c;阿里巴巴创始人、董事局主席马云谈及企业间的竞争时&#xff0c;提到了与腾讯的关系。他表示&#xff0c;没有腾讯&#xff0c;阿里…

Win10 | Mac 在server上统一办公

一个非常实际的问题&#xff0c;通常我们主要有三个工作的地点&#xff1a;1&#xff0c;server&#xff0c;用于大型数据的分析和处理&#xff1b;2&#xff0c;办公室的电脑&#xff0c;正式办公&#xff1b;3.自己的电脑&#xff0c;偶尔加班。 不同的工作平台之间很难同步&…

JDK5.0新特性系列---目录

JDK5.0新特性系列---目录 JDK5.0新特性系列---1.自动装箱和拆箱 JDK5.0新特性系列---2.新的for循环 JDK5.0新特性系列---3.枚举类型 JDK5.0新特性系列---4.静态导入 JDK5.0新特性系列---5.可变长参数Varargs JDK5.0新特性系列---6.格式化输出 JDK5.0新特性系列---7.使用Proce…

怎样搞定分类表格数据?有人用TF2.0构建了一套神经网络 | 技术头条

作者 | 王树义来源 | 玉树芝兰&#xff08;ID&#xff1a;nkwangshuyi&#xff09;以客户流失数据为例&#xff0c;看 Tensorflow 2.0 版本如何帮助我们快速构建表格&#xff08;结构化&#xff09;数据的神经网络分类模型。变化表格数据&#xff0c;你应该并不陌生。毕竟&…

【FFmpeg】Hello World!尝试如何编译FFmpeg程序

1、说明 下面的例子只演示,编译FFmpeg时用的头文件和库,不涉及编解码,只调用一个可以打印编译FFmpeg库的配置项的接口:avcodec_configuration() 2、avCfg.c #include <stdio.h> #include <libavcodec/avcodec.h>int main(int argc,char *argv[]

x-pack watch邮件报警配置

参考网址&#xff1a; https://www.cnblogs.com/reboot51/p/8328720.html https://www.elastic.co/guide/en/x-pack/5.6/actions-email.html #邮件设置 elasticsearch 配置 xpack.notification.email.account:exchange_account:profile: outlookemail_defaults:from: infomail.…

虚拟桌面的备份恢复最佳实践 第一部分

摘要 VMware View 是目前虚拟桌面市场的旗舰产品。借助它&#xff0c;企业可以将办公系统、应用和基础架构以高性能、高度可扩展的集中式托管服务形式交付给用户。View 还可提供保护它所支持的系统和应用以及相关用户数据所需的功能。它支持方便地备份和还原存档数据。 通常&…

Python程序员Debug利器,和Print说再见 | 技术头条

整理 | Rachel责编 | Jane出品 | Python大本营&#xff08;id&#xff1a;pythonnews&#xff09;【导语】程序员每日都在和 debug 相伴。新手程序员需要学习的 debug 手段复杂多样&#xff0c;设置断点、查看变量值……一些网站还专门针对debug撰写了新手教程。老司机们在大型…

【FFmpeg】解决警告warning: xxx is deprecated [-Wdeprecated-declarations]的方法

1、问题描述 编译FFmpeg程序时,经常报一些关于“deprecated”的警告信息,具体内容如下: decode.cpp:28:2: warning: ‘void av_register_all()’ is deprecated [-Wdeprecated-declarations]av_register_all(); decode.<

[BZOJ2527]Meteors

整体二分挺好玩的...学一发 这个询问显然是可以二分的&#xff0c;但每次都二分就会T爆&#xff0c;所以我们有了“整体”二分 每次处理一些询问&#xff0c;要求这些询问的答案一定在$[l,r]$中 先把$l$到$mid$的操作实施&#xff0c;那么当前TAK的询问答案一定在$[l,mid]$中&a…

一个可提供html5制作服务的网站

2019独角兽企业重金招聘Python工程师标准>>> 【TechWeb报道】最近网上出现了一个专门基于HTML5/CSS3制作服务的组织 P2H.cn. 就是专门提供网站切图的一项服务。特别在哪儿呢 &#xff0c;P2H.cn 可以制作出完美的兼容的html5/css3的页面。 王大利/文 如果你不知…

【Ubuntu】Ubuntu下的录频软件SimpleScreenRecorder

1、说明 官网介绍&#xff1a;https://www.maartenbaert.be/simplescreenrecorder/ 源码参见github&#xff1a;https://github.com/MaartenBaert/ssr 2、安装 Ubuntu版本>17.04&#xff0c;直接安装 sudo apt-get install simplescreenrecorderUbuntu版本<17.04&…

打开阿兹海默之门:华裔张复伦利用RNN成功解码脑电波,合成语音 | Nature

作者 | 琥珀出品 | AI科技大本营&#xff08;ID:rgznai100&#xff09;2019 年 4 月 24 日&#xff0c;来自加州大学旧金山分校&#xff08;UCSF&#xff09;神经外科学系 Gopala K. Anumanchipalli&#xff0c;Josh Chartier&#xff0c;Edward F. Chang 团队在 Nature 杂志上…

[转载] 别人的心得感悟

原文&#xff1a; https://www.cnblogs.com/double-K/p/6926367.html#commentform ---------------------------------------- 不可说的感悟-——十年老技术转型&#xff08;一&#xff09; 佛曰&#xff1a;“不可说&#xff0c;说既是错”&#xff0c;所以本篇也是错&#xf…

Windows Phone 7、XNA的旋转的背景

在游戏表现的过程中需要一些比较酷的动作&#xff0c;我们需要通过图型与XNA中的一些代码来实现&#xff0c;比如我们要说到的一个360度转动的圆。 在手机上的效果如下: 当然在这里我们看不到转动的效果&#xff0c;下边提供的有源码&#xff0c;大家可以下载运行测试一下。 操…

【Qt】报错error: undefined reference to `vtable for的解决方法

1、问题描述 编译Qt程序时&#xff0c;在某个类构造函数定义处报错&#xff1a; error: undefined reference to vtable for2、原因分析 导致错误信息的原因是&#xff1a;子类没有实现父类的纯虚函数&#xff1b; 在Qt中&#xff0c;首先要想到的是在一个类中添加了新的继承…

110万开发者的福音,百度Easy DL商品检测专业版上线

继首场百度大脑开放日上一口气开放24项全新AI技术后&#xff0c;4 月 25 日下午&#xff0c;第二期百度大脑开放日如约举行&#xff0c;本次共发布了13款AI通用新能力、5项技术升级&#xff0c;并推出了EasyDL商品检测专业版和语音识别自训练平台两大全新的可定制训练平台。 实…

简单爬虫学习记录

实现思路解析&#xff1a;爬虫调度器&#xff1a;启动/停止爬虫&#xff0c;规定爬虫的范围&#xff1b;URL管理器&#xff1a;管理2个URL&#xff1a;新的没有爬过的urls&#xff1b;旧的爬过的urls&#xff1b;URL下载器&#xff1a;下载url对应的html数据&#xff1b;HTML解…

开启笔记本win7的虚拟热点,让你的本本变成wifi

写在前面&#xff1a;相信很多人都跟我一样有困扰&#xff0c;在学校用校园网不能wifi&#xff0c;所以在此提供一个教程&#xff0c;希望能给机友们一些帮助。帖子转自网络&#xff0c;自己也测试过了。分享给大家&#xff0c;希望能给大家带来一些方便。开启windows 7的隐藏功…

检测到包降级: Microsoft.Extensions.Configuration.Abstractions 从 2.1.1 降 2.1.0

解决方法&#xff1a;工具-nuget管理包-程序管理控制台-选择 项目- 执行 -Install-Package Microsoft.Extensions.Configuration.Abstractions -Version 2.1.1命令即可。 转载于:https://www.cnblogs.com/dashanboke/p/9229826.html

【FFmpeg】如何通过url的格式找到对应的协议,以rtmp为例

1、简述 在使用 avio_open 接口时,只要给形参 filename 传入 url 格式的字符串就能找到对应的协议。这篇博客就是追踪 avio_open 的调用关系,探明如何根据一个url字符串就能找到对应的协议。下面以rtmp协议为例。 2、FFmpeg对rtmp协议的支持 rtmp协议的实现源码在 libavfo…

李开复口中的“联邦学习” 到底是什么?| 技术头条

近日&#xff0c;在百大人物峰会上&#xff0c;创新工场创始人李开复谈及数据隐私保护和监管问题时&#xff0c;表示&#xff1a;“人们不应该只将人工智能带来的隐私问题视为一个监管问题&#xff0c;可尝试用‘以子之矛攻己之盾’——用更好的技术解决技术带来的挑战&#xf…