2015年《大数据》高被引论文Top10文章展示

【编者按】本刊将把2015年《大数据》高被引论文Top10的文章陆续发布,欢迎大家关注!本文为高被引Top10论文的No.7,刊登在2015年第1期。引用格式如下:

黄宜华. 大数据机器学习系统研究进展[J]. 大数据, 2015004.

HUANG Y H. Research progress on big data machine learning system[J]. Big Data Research, 2015004.

黄宜华1,2
1.南京大学计算机软件新技术国家重点实验室 南京 210023;
2.南京大学PASA大数据技术实验室 南京 210023

摘要:要实现高效的大数据机器学习,需要构建一个能同时支持机器学习算法设计和大规模数据处理的一体化大数据机器学习系统。研究设计高效、可扩展且易于使用的大数据机器学习系统面临诸多技术挑战。近年来,大数据浪潮的兴起,推动了大数据机器学习的迅猛发展,使大数据机器学习系统成为大数据领域的一个热点研究问题。介绍了国内外大数据机器学习系统的基本概念、基本研究问题、技术特征、系统分类以及典型系统;在此基础上,进一步介绍了本实验室研究设计的一个跨平台统一大数据机器学习系统——Octopus(大章鱼)。
关键词:大数据;机器学习;分布并行计算;大数据处理平台

Research progress on big data machine
learning system
HUANG Yihua1,2
1.National Key Laboratory for Novel Software Technology, Nanjing University, Nanjing 210023, China;
2.PASA Big Data Laboratory, Nanjing University, Nanjing 210023, China


Abstract: To achieve efficient big data machine learning, we need to construct a unified big data machine learning system to support both machine learning algorithm design and big data processing. Designing an efficient, scalable and easy-to-use big data machine learning system still faces a number of challenges. Recently, the upsurge of big data technology has promoted rapid development of big data machine learning, making big data machine learning system to become a research hotspot. The basic concepts, research issues, technical characteristics, categories, and typical systems for big data machine learning system, were reviewed. Then a unified and cross-platform big data machine learning system, Octopus, was presented.
Key words: big data, machine learning, distributed and parallel computing, big data processing platform

6 跨平台统一大数据机器学习系统Octopus的研究设计

6.1   Octopus的基本设计思想

上述绝大多数大数据机器学习方法和系统都是基于特定平台构建的,难以集成和兼容现有和未来出现的多种大数据处理引擎和平台。现实世界中的各种大数据分析处理应用通常会有不同的分析处理需求和特征,例如,有些可能是极大规模数据的离线分析处理,有些可能是要求高实时性响应的联机分析处理,这些不同的分析需求要求底层有不同特性的大数据处理平台支持;此外,随着大数据处理技术和平台的不断发展,目前和未来不断有新的大数据编程方法和处理平台出现。因此,企业内需要将其原有平台上已经开发好的机器学习和数据分析算法,改写和移植到新的平台上,这将给企业带来很大的重复性劳动和开发负担。

为此,一个理想的大数据机器学习系统还需要拥有能够支持现有和未来出现的不同大数据处理平台的能力,实现跨平台大数据机器学习和数据分析算法的设计能力,达到“WriteOnce,Run Anywhere”的跨平台算法设计和运行目标。

针对大数据机器学习系统需要重点研究解决的计算性能以及可编程性与易用性问题,并考虑上述的跨平台需求特性,南京大学PASA大数据实验室正在研究设计一个跨平台大数据机器学习的统一编程模型和系统平台。该系统基于矩阵编程计算模型,结合R编程语言和编程方法,设计提供一个跨平台的统一编程计算框架,最终研究实现一个跨平台大数据机器学习系统Octopus(大章鱼)。

分析发现,机器学习和数据挖掘算法中的主体计算大多可表示为矩阵或向量运算,这通常也是算法中最耗时的部分。矩阵操作也是机器学习研究者用来描述问题和算法最为自然和常用的方式,基于矩阵可以表示和刻画大多数实际应用中涉及的机器学习和数据分析算法问题。基于这样的事实,为了给大数据机器学习和数据分析提供一种自然和统一的编程计算模型和编程方法,类似于MapReduce中基于数据记录列表的抽象编程计算模型,将研究建立一种基于矩阵模型的抽象编程计算模型,以此作为大数据机器学习和数据分析算法设计的统一编程计算模型和接口。

Octopus是一个高层的大数据机器学习和数据分析统一编程模型和系统平台,允许数据分析和大数据应用开发程序员轻松地设计和开发各种大数据机器学习和数据分析算法与应用程序。通过提供基于矩阵的统一编程计算模型,使用基于R语言的数据分析程序设计语言和程序设计方法,允许用户方便地编写和运行常规的R语言程序,而无需了解底层大数据平台的分布和并行化编程计算知识,使底层的分布并行计算框架和大数据平台对用户完全透明;底层平台上,通过良好的系统层抽象,可以快速集成Hadoop和Spark等通用大数据并行计算框架和系统平台,而且程序仅需编写一次,不需要有任何修改即可根据需要选择并平滑运行于任何一个平台,从而实现“WriteOnce,Run Anywhere”的跨平台特性。

6.2   基于矩阵模型的统一编程和计算模型

分析发现,一方面,大数据机器学习算法中的主体计算很多可表示为矩阵或向量运算(向量可视为退化为1维的特殊矩阵),通常这也是算法中最耗时的部分;另一方面,矩阵操作通常也是机器学习研究者用来描述问题和算法最为自然和常用的方式。例如,训练样本特征值的归一化往往是通过对矩阵行或列求和后再除以该求和的值;KNN算法(最近邻算法)的核心操作是矩阵相减和矩阵元素求平方操作;PCA(主成分分析)算法可以通过矩阵相乘或矩阵的SVD分解进行求解;最小二乘法的解析法涉及矩阵的相乘和求逆操作;互联网企业推荐系统中,相似性分析的核心是高达数亿用户乘以数亿物品的矩阵分解计算问题;而腾讯Peacock主题模型训练系统则涉及数十亿文档乘以数百万词汇的巨大矩阵计算问题;在信息检索领域,著名的PageRank算法也可以表示成矩阵的迭代相乘;社会网络中可以通过计算朋友关系矩阵的幂,从而进行基于共同好友的推荐;电子商务中可以通过对用户对商品的购买记录进行矩阵分解,得到商品和用户的聚类并分析其潜在语义主题模型。很多其他的数据分析和大数据科学计算问题也常常要基于矩阵模型完成问题的描述和分析计算过程。因此,基于矩阵可以表示和刻画大多数实际应用中涉及的机器学习和数据分析算法问题。

基于这样的事实,为了给大数据机器学习提供一种统一的编程计算模型以及编程方法,类似于MapReduce采用了基于数据记录列表的抽象编程计算模型,研究建立了一种基于矩阵模型的抽象编程计算模型,以此作为大数据机器学习算法设计的统一编程计算模型和接口。

这种抽象矩阵编程计算模型将成为统一机器学习算法设计和编程计算的核心,它具有如下3个重要作用。

●  基于机器学习和数据挖掘算法中主体计算大多可表示为矩阵或向量运算的事实,为数据分析用户提供一种自然和统一化的大数据机器学习和数据分析算法建模和表示方法。

●  作为一个隔离和解耦上层数据分析算法与下层各种大数据平台的中间接口,实现底层平台对上层程序员及其程序的透明性,以此提高统一平台对上层程序员的易用性。

●  为实现统一大数据机器学习系统开放式集成框架提供一种接口标准。针对任意一个拟集成使用的底层大数据平台,只要遵照所建立的统一矩阵编程接口,实现一个完成该接口程序计算任务的适配器或插件,即可以博采众长和兼容并蓄的开放式框架,连接和集成使用各种主流的大数据平台,使得上层的机器学习算法具有处理大规模数据的能力。

6.3  Octopus软件框架和系统设计

如图5所示,Octopus是一种基于良好的系统抽象的层次化系统。其最底层是分布式文件系统,如HDFS和分布式内存文件系统Tachyon,它们被用来存储和索引大规模的矩阵数据。在存储层之上,Octopus可以用多种大数据计算引擎和单机R引擎来执行不同规模的矩阵操作。Octopus提供给用户的编程API是基于R语言的高层矩阵计算接口,基于该接口,用户不需要了解分布和并行计算系统知识,就可以很容易地设计实现大数据机器学习和数据分析算法或应用。

图5    Octopus(大章鱼)软件系统框架

6.4  Octopus系统的技术特征

Octopus具有以下技术特征。

(1)易于使用的高层编程API

Octopus提供给用户一组基于R语言的大规模矩阵运算API,称为OctMatrix。这些API提供各种大规模分布式矩阵计算操作,其形式上与标准R语言中的单机矩阵/向量操作API很相似。程序员可基于这些矩阵运算接口,用R语言快速编写各种机器学习和数据分析算法。除了最常用的大规模矩阵乘法,Octopus也提供了其他各种矩阵操作,如矩阵与矩阵的加法和减法、矩阵元素级别的乘法和除法、子矩阵运算等。这些API定义了高层矩阵操作符(operator)和操作(operation),因此熟悉R编程语言和编程方法的用户可以很容易地用其编程实现大数据机器学习和数据分析算法,且不需要了解底层大数据处理平台及其并行化编程方法。

(2)一次编写,随处运行

用Octopus编写完成的算法和程序,可以运行在不同的底层大数据计算引擎和平台上。用OctMatrixAPI实现的机器学习和数据分析算法,用户可以在单机R上用小数据进行测试,不需要修改代码就可以用大数据在底层的大数据计算引擎和平台上执行,只需要简单切换底层的大数据计算引擎如Spark、HadoopMapReduce或MPI即可。此外,Octopus通过提供通用接口可实现对底层不同文件系统的集成,并实现基于不同文件系统的大规模矩阵数据存储访问接口,包括HDFS、Tachyon以及基于单机本地的文件系统。

(3)无缝融合R生态系统

Octopus可运行于标准的R环境下,实现与R环境的无缝融合,因此可以利用R生态系统中的丰富资源,比如第三方R包。除了传统的矩阵/向量函数,Octopus也在OctMatrix中提供apply函数,传入apply函数的参数可以是任意的R函数,包括UDF(userdefined function)。当OctMatrix运行在分布式环境中时,函数参数可以在集群中被应用于OctMatrix的每个元素、每行或每列,函数参数在集群的每个节点并行执行。

6.5  Octopus中分布式矩阵计算优化

大规模数据通常会导致整个数据分析计算时间过长,难以在可接受的时间内完成分析任务,为此需要借助于分布式和并行化计算技术实现大规模数据分析计算时的加速和性能提升,以提高数据分析的响应时间。由于采用大规模矩阵作为大数据机器学习和数据分析的编程计算接口,在底层大数据平台上的大规模矩阵运算的性能将直接关系到上层算法执行的性能。为此,大规模矩阵计算性能优化是需要重点研究解决的关键技术问题之一。

在所有矩阵计算中,矩阵乘法是使用最多且最为耗时的计算,许多矩阵的因子分解操作也都可以由矩阵乘法近似实现。因此,矩阵乘法的优化是整个矩阵计算优化中最为重要的问题。两个大规模矩阵进行分布和并行化相乘运算时,一个重要问题是如何合理划分矩阵数据,以便利用多个计算节点分布和并行化地完成计算。不同大小和形状的矩阵,其划分方法可能会造成计算性能上的差异,例如,方形矩阵与长条形矩阵需要考虑不同的划分方法,而一个大矩阵与一个小矩阵相乘时,当小矩阵可存放在单节点的内存中时,对小矩阵可不进行划分,而改用广播方式将小矩阵发送到每个计算节点上,以此完成两个矩阵的运算,这样可以避免大量的网络数据传输。因此,需要根据矩阵的大小和形状,合理划分矩阵,以便以最小的计算代价完成乘法运算。

除了不同形状和大小的矩阵划分策略优化外,被划分后落到每个计算节点上分布处理的子矩阵计算也需要进行优化。矩阵乘法是典型的计算密集型任务并且存在许多单机的高性能的线性代数库,如BLAS、Lapack和MKL。由于在JVM中执行线性代数计算性能较低,Octopus将计算密集的矩阵计算从JVM中通过JNILoader装载到本地线性代数库(如BLAS、Lapack)中执行,这样可显著加速子矩阵的计算性能。

6.6  Octopus系统的编程使用

图6显示了Octopus系统的使用方式。Octopus使用标准的R编程和开发环境,允许用户使用R语言,并基于大规模矩阵计算模型编写各种机器学习和数据分析算法。系统可实现与Spark、HadoopMapReduce和MPI的集成,底层可无缝切换运行于不同的大数据平台上。基于Octopus所设计实现的算法或程序代码,无需修改即可平滑切换并运行于上述任意一个底层大数据计算引擎和平台上,只要简单地修改程序代码中的计算引擎类型选择参数即可。

图6    基于R语言和Octopus的跨平台统一大数据机器学习系统

基于R语言和初步研究设计的Octopus,设计实现了多个典型的机器学习算法,包括LR、SVM、聚类、深度学习等,以验证研究设计的原型系统的有效性。

图7是基于常规R语言所实现的LinearRegression算法与基于Octopus所实现的Linear Regression算法的示例代码。由代码比较可见,两者在形式上非常接近,仅在有关矩阵运算调用的API上有微小差异。

图7   基于Octopus和常规R语言的Linear Regresssion算法代码比较

由图7可见,在R语言中基于矩阵进行机器学习的算法设计较为简洁和方便,LinearRegression代码仅仅需要20行左右即可实现完整的算法。

7 结束语

近几年来,大数据技术的发展推动了大数据机器学习和智能计算技术的发展热潮。大数据机器学习不仅是一个单纯的机器学习问题,更是一个大规模的复杂系统问题;是一个同时涉及机器学习和大数据处理两个领域的交叉研究课题。要实现有效的大数据机器学习处理,需要构建一个能同时支持机器学习算法设计和大规模数据处理的一体化大数据机器学习系统。

本文介绍了国内外大数据机器学习系统的基本概念、基本研究问题、技术特征、系统分类以及典型系统。在此基础上,进一步介绍了研究设计的跨平台统一大数据机器学习原型系统Octopus。基于大多数机器学习和数据分析算法可表示为矩阵运算的事实,Octopus采用矩阵模型作为大数据机器学习和数据分析抽象编程计算模型,提供了一个基于矩阵的高层编程模型和接口,并基于R语言和开发环境向用户提供了一个矩阵运算R扩展包,为用户提供可扩展性好且易于使用的矩阵运算操作,允许用户基于所提供的大规模矩阵运算操作,快速设计实现各种机器学习和数据分析算法。Octopus能在底层无缝地集成和使用不同的大数据计算引擎和平台,完成大数据机器学习算法的分布和并行化执行,并支持单节点R环境以及Spark、HadoopMapReduce和MPI等多种大数据计算引擎和平台,并能实现这些平台间的无缝切换,实现“Write Once,Run Anywhere”的跨平台特征。就我们所知,Octopus是目前世界上第一个具有跨平台特性,同时还能实现底层大数据平台对上层程序员透明化的大数据机器学习系统研究工作。

正如CCF大数据专家委员会发布的2014年《中国大数据技术与产业发展白皮书》中所说,目前大数据机器学习系统尚处在一个初期的探索和研究阶段,尽管国内外已经有不少研究开发工作,但研究设计高效、可扩展且易于使用的大数据机器学习系统仍面临诸多的技术挑战。因此,大数据机器学习系统将是目前和未来几年的热点研究领域,工业界和学术界都将持续地投入相当多的资源进行深入的研究开发工作。

同样,虽然初步研究设计了跨平台大数据机器学习系统Octopus,但其中仍然有大量需要进一步深入研究解决和完善的技术问题,例如大规模矩阵运算的深度优化、稀疏矩阵的存储管理和计算优化、异构大数据处理平台环境下不同矩阵计算时的平台自动选择、基于矩阵计算表达式和计算流图的计算优化等。此外,仅有矩阵计算模型还不能满足所有的大数据机器学习计算需求,还需要考虑其他计算模型,如图模型和参数模型(parameterserver)的混合使用,形成一个能满足各种大数据机器学习算法设计需求的综合系统。

致谢

本文工作受到江苏省科技支撑计划基金项目(No.BE2014131)和江苏省软件技术产业协同创新中心的资助。

参考文献:

[1] BankoM, Brill E. Scaling to very  largecorpora for natural language disambiguation. Proceedings of the 39thAnnual Meeting on Association for Computational Linguistics (ACL), Toulouse,France, 2001: 26~33

[2] BrantsT, Popat C A, Xu P, et al. Large language models in machinetranslation. Proceedings of the 2007 Joint Conference on Empirical Methods inNatural Language Processing and Computational Language Learning, Prague, CzechRepublic, 2007: 858~867

[3] WangY, Zhao X M, Sun Z L, et al. Peacock: learning long-tail topic features forindustrial applications. ACM Transactions on Intelligent Systems andTechnology, 2014, 9(4)

[4] 中国计算机学会大数据专家委员会. 2015年中国大数据发展趋势预测. 中国计算机学会通讯, 2015, 11(1): 48~52

CCFTask Force on Big Data. Forecast for the development trend of big data in 2015.Communications of the China Computer Federation (CCCF), 2015, 11(1): 48~52

[5] GonzalezJ E. Emerging systems for large-scale machine learning. Proceedings of Tutorialon International Conference for Machine Learning(ICML) 2014, Beijing, China,2014

[6] 中国计算机学会大数据专家委员会. 2014年中国大数据技术与产业发展白皮书. 2014中国大数据技术大会, 北京, 中国, 2014

CCFTask Force on Big Data. White paper of China’s big data technology andindustrial development in 2014. Proceedings of Big Data Conference China,Beijing, China, 2014

[7] BoehmM, Tatikonda S, Reinwald B, et al. Hybrid parallelization strategies for large-scalemachine learning in systemML. Proceedings of the VLDB Endowment, Hangzhou,China, 2014

[8] MarklV. Breaking the chains: on declarative data analysis and data independence inthe big data era. Proceedings of the VLDB Endowment, Hangzhou, China, 2014

[9] KraskaT T. MLbase: a distributed machine-learning system. Proceedings of the 6thConference on Innovative Data Systems Research(CIDR), Asilomar, CA, USA, 2013

[10]   FanW F, Geerts F, Neven F. Making queries tractable on big data withpreprocessing: through the eyes of complexity theory. Proceedings of the VLDBEndowment, Trento, Italy, 2013: 685~696

[11]   DeanJ, Ghemawat S. MapReduce: simplified data processing on large clusters.Communications of the ACM, 2004, 51(1): 107~113

[12]   ZahariaM, Chowdhury M, Das T, et al. Resilient distributed datasets: a fault-tolerantabstraction for in-memory cluster computing. Proceedings of the 9th USENIXConference on Networked Systems Design and Implementation(NSDI), San Jose, CA,USA, 2012: 141~146

[13]   Venkataraman S, Bodzsar E, Roy I, et al. Presto: distributed machine learningand graph processing with sparse matrices. Proceedings of the 8th ACM EuropeanConference on Computer Systems(EuroSys), Prague, Czech Republic, 2013: 197~210

[14]   Ghoting A, Krishnamurthy R, PednaultE,et al. SystemML: declarative machinelearning on MapReduce. Proceedings of International Conference on DataEngineering (ICDE), Hannover, Germany, 2011: 231~242

[15]   BoehmM, Tatikonda S, Reinwald B, et al. Hybrid parallelization strategies for large-scalemachine learning in SystemML. Proceedings of the VLDB Endowment, Hangzhou,China, 2014

[16]   LowY, Bickson D, Gonzalez J, et al. Distributed graphLab: a framework for machinelearning and data mining in the cloud. Proceedings of the VLDB Endowment,Istanbul, Turkey, 2012: 716~727

[17]   LiM, Andersen G D, Park W J, et al. Scaling distributed machine learning with theparameter server. Proceedings of Operating Systems Design and Implementation(OSDI), Broomfield, CD, USA, 2014: 583~598

[18]   HoQ, Cipar J, Cui H, et al. More effective distributed ml via astale synchronous parallel parameter server. Proceedings of Advances in NeuralInformation Processing Systems (NIPS), Nevada, USA, 2013: 1223~1231

黄宜华,男,博士,南京大学计算机系教授、博士生导师,中国计算机学会大数据专家委员会委员、副秘书长,江苏省计算机学会大数据专家委员会主任,CCF高级会员,南京大学PASA大数据技术实验室学术带头人。主要研究方向为大数据并行处理、大数据机器学习、Web信息抽取与挖掘技术,在国内外学术刊物和国际会议上发表学术论文60多篇,撰写并出版大数据处理方向书籍两部,是近年来出版的《深入理解大数据—大数据处理与编程实践》一书的作者。目前正在大数据并行化算法、大数据系统平台和应用方面开展深入的研究工作,主持或参与多项国家级和省部级科研项目,并在大数据领域开展了与Intel、UC Berkeley AMP Lab、微软亚洲研究院、百度、中兴通讯等国内外知名企业和研究机构的合作研究工作。

2015年《大数据》高被引论文Top10文章No.7——大数据机器学习系统研究进展(下)...相关推荐

  1. 2015年《大数据》高被引论文Top10文章No.9——大数据是数据、技术,还是应用

    2015年<大数据>高被引论文Top10文章展示 [编者按]本刊将陆续发布2015年<大数据>高被引论文Top10的文章,欢迎大家关注!本文为高被引Top10论文的No.9,刊 ...

  2. 2015年《大数据》高被引论文Top10文章No.7——大数据机器学习系统研究进展(上)...

    2015年<大数据>高被引论文Top10文章展示 [编者按]本刊将把2015年<大数据>高被引论文Top10的文章陆续发布,欢迎大家关注!本文为高被引Top10论文的No.7, ...

  3. 2015年《大数据》高被引论文Top10文章No.2——大数据时代的数据挖掘 —— 从应用的角度看大数据挖掘(下)...

    2015年<大数据>高被引论文Top10文章展示 [编者按]本刊将把2015年<大数据>高被引论文Top10的文章陆续发布,欢迎大家关注!本文为高被引Top10论文的No.2, ...

  4. 2015年《大数据》高被引论文Top10文章No.2——大数据时代的数据挖掘 —— 从应用的角度看大数据挖掘(上)...

    2015年<大数据>高被引论文Top10文章展示 [编者按]本刊将把2015年<大数据>高被引论文Top10的文章陆续发布,欢迎大家关注!本文为高被引Top10论文的No.2, ...

  5. 2015年《大数据》高被引论文Top10文章No.10——我国大数据交易的主要问题及建议...

    2015年<大数据>高被引论文Top10文章展示 [编者按]本刊将陆续发布2015年<大数据>高被引论文Top10的文章,欢迎大家关注!本文为高被引Top10论文的No.10, ...

  6. 2015年《大数据》高被引论文Top10文章No.5——对大数据的再认识

    2015年<大数据>高被引论文Top10文章展示 [编者按]本刊将陆续发布2015年<大数据>高被引论文Top10的文章,欢迎大家关注!本文为高被引Top10论文的No.5,刊 ...

  7. 2015年《大数据》高被引论文Top10文章No.4——关于大数据交易核心法律问题 —— 数据所有权的探讨...

    2015年<大数据>高被引论文Top10文章展示 [编者按]本刊将把2015年<大数据>高被引论文Top10的文章陆续发布,欢迎大家关注!本文为高被引Top10论文的No.4, ...

  8. 2015年《大数据》高被引论文Top10文章No.3——我国政府数据开放现状和保障机制...

    2015年<大数据>高被引论文Top10文章展示 [编者按]本刊将把2015年<大数据>高被引论文Top10的文章陆续发布,欢迎大家关注!本文为高被引Top10论文的No.3, ...

  9. 2015年《大数据》高被引论文Top10文章No.6——医疗健康大数据:应用实例与系统分析...

    2015年<大数据>高被引论文Top10文章展示 [编者按]本刊将陆续发布2015年<大数据>高被引论文Top10的文章,欢迎大家关注!本文为高被引Top10论文的No.6,刊 ...

最新文章

  1. 一次关于DNS服务器的故障排错记录——RNDC故障
  2. 宜信创始人唐宁:技术到处都是,关键看怎么用
  3. 关于silverlight+MVVM+WCF保存数据出错的问题
  4. 知乎上 40 个有趣回复,很精辟!
  5. 嘿嘿~~大家一起来测测自己反映速度
  6. 计算机课程设计 校园网规划设计与实现,校园网的规划与实现.doc
  7. MQTT网关是什么?
  8. Markdown 全文检索
  9. 阿里巴巴给我们的启示--个人评论
  10. c语言用指针升序降序,C语言函数序——升序降序.doc
  11. java 余弦定理_Java根据余弦定理计算文本相似度
  12. Bezier、B样条曲线曲面
  13. HTML基础(五)——a标签
  14. 各大汽车厂商的OBD协议
  15. Joan Ganz Cooney将接受IBC2018卓越国际荣誉奖
  16. 人类动作识别数据集AVA
  17. 电力电子硕士2022秋招总结
  18. 高级程序员最爱用的8款代码编辑器,你用哪几个?
  19. Kurento实战之五:媒体播放
  20. 100集华为HCIE安全培训视频教材整理 | 防火墙互联技术(二)

热门文章

  1. 在电视中使用计算机动画最多的是,计算机动画技术在科教类电视节目中的应用探究...
  2. ISO7816-3标准ATR解析
  3. Jenkins配置邮件通知(2)——配置邮件模板
  4. 集成运算放大器的线性应用(模电速成)
  5. Python打印输出数组中全部元素的方法
  6. BIOS设置中英文对照表
  7. Word文档结构图的生成and结合文档结构图生成目录
  8. 认识BACnet协议
  9. Excel基本操作常用总结
  10. linux终端能不能打字,不能打字只有拼音_Ubuntu系统拼音无法正确打字怎么解决