2019年十大最佳深度学习框架

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2019年十大最佳深度学习框架相关的知识,希望对你有一定的参考价值。

作者 | Python语音识别 来源 | 涛哥聊Python 虽然我们大多数人都惊叹为什么DL这么好?在使用大量数据进行训练时,它在准确性方面非常

参考技术A

作者 | Python语音识别

来源 | 涛哥聊Python

虽然我们大多数人都惊叹为什么DL这么好?在使用大量数据进行训练时,它在准确性方面非常出色。近几年随着深度学习算法的发展,出现了很多深度学习的框架,这些框架各有所长,各具特色。下面将为大家介绍2019年最受欢迎的十大深度学习框架。

TensorFlow

谷歌的Tensorflow可以说是当今最受欢迎的深度学习框架。Gmail,Uber,Airbnb,Nvidia以及其他许多知名品牌都在使用。TF是目前深度学习的主流框架,Tensorflow主要特性:

TensorFlow支持python、javascript、C ++、Java和Go,C#和Julia等多种编程语言。 TF不仅拥有强大的计算集群,还可以在iosandroid等移动平台上运行模型。 TF编程入门难度较大。初学者需要仔细考虑神经网络的架构,正确评估输入和输出数据的维度和数量。 TF使用静态计算图进行操作 。也就是说我们需要先定义图形,然后运行计算,如果我们需要对架构进行更改,我们会重新训练模型。选择这样的方法是为了提高效率,但是许多现代神经网络工具能够在学习过程中考虑改进而不会显着降低学习速度。在这方面,TensorFlow的主要竞争对手是PyTorch 。

TensorFlow优点:

它非常适合创建和试验深度学习架构,便于数据集成,如输入图形,SQL表和图像。 它得到谷歌的支持,这就说明该模型短期内不会被抛弃,因此值得投入时间来学习它。 PyTorch

Tensorflow之后用于深度学习的主要框架是PyTorch。PyTorch框架是Facebook开发的,已被Twitter和Salesforce等公司使用。

PyTorch基本特性:

与TensorFlow不同,PyTorch库使用动态更新的图形进行操作 。这意味着它可以在流程中更改体系结构。 在PyTorch中,您可以使用标准调试器 ,例如pdb或PyCharm。

PyTorch优点:

训练神经网络的过程简单明了。同时,PyTorch支持数据并行和分布式学习模型,并且还包含许多预先训练的模型。 PyTorch更适合小型项目和原型设计。 Sonnet

Sonnet深度学习框架是建立在TensorFlow的基础之上。它是DeepMind用于创建具有复杂架构的神经网络。

Sonnet基本特性:

面向对象的库,在开发神经网络(NN)或其他机器学习(ML)算法时更加抽象。 Sonnet的想法是构造对应于神经网络的特定部分的主要Python对象。此外,这些对象独立地连接到计算TensorFlow图。分离创建对象并将其与图形相关联的过程简化了高级体系结构的设计。

Sonnet优点:

Sonnet的主要优点是可以使用它来重现DeepMind论文中展示的研究,比Keras更容易,因为DeepMind论文模型就是使用Sonnet搭建的。 Keras

Keras是一个机器学习框架,如果您拥有大量数据和/或你想快速入门深度学习,那么Keras将非常适合学习。Keras是TensorFlow高级集成APi,可以非常方便的和TensorFlow进行融合。这是我强烈推荐学习的一个库。

Keras基本特性:

除了Tensorflow之外,Keras还是其他流行的库(如Theano和CNTK)的高级API。 在Keras中更容易创建大规模的深度学习模型,但Keras框架环境配置比其他底层框架要复杂一些。

Keras优点:

对于刚刚入门的人来说,Keras是最好的深度学习框架。它是学习和原型化简单概念的理想选择,可以理解各种模型和学习过程的本质。 Keras是一个简洁的API。 可以快速帮助您创建应用程序。 Keras中代码更加可读和简洁。 Keras模型序列化/反序列化API,回调和使用Python生成器的数据流非常成熟。

顺便说一下TensorFlow和Keras的对比:

PS:Tensorflow处于底层框架:这和MXNet,Theano和PyTorch等框架一样。包括实现诸如广义矩阵 - 矩阵乘法和诸如卷积运算的神经网络原语之类的数学运算。

Keras处于高度集成框架。虽然更容易创建模型,但是面对复杂的网络结构时可能不如TensorFlow。

MXNet

MXNet是一种高度可扩展的深度学习工具,可用于各种设备。虽然与TensorFlow相比,它似乎没有被广泛使用,但MXNet的增长可能会因为成为一个Apache项目而得到提升。

MXNet基本特性:

该框架支持多种语言,如C ++,Python,R,Julia,JavaScript,Scala,Go,甚至Perl。 可以在多个GPU和许多机器上非常有效地并行计算。

MXNet优点:

支持多个GPU(具有优化的计算和快速上下文切换) 清晰且易于维护的代码(Python,R,Scala和其他API) 快速解决问题的能力(对于像我这样的深度学习新手至关重要)

虽然它不像TF那么受欢迎,但MXNet具有详细的文档并且易于使用,能够在命令式和符号式编程风格之间进行选择,使其成为初学者和经验丰富的工程师的理想选择。

GLUON

Gluon是一个更好的深度学习框架,可以用来创建复杂的模型。GLUON基本特性:

Gluon的特殊性是具有一个灵活的界面,简化了原型设计,构建和培训深度学习模型,而不会牺牲学习速度。 Gluon基于MXNet,提供简单的API,简化深度学习模型的创建。 与PyTorch类似,Gluon框架支持使用动态图表 ,将其与高性能MXNet相结合。从这个角度来看,Gluon看起来像是分布式计算的Keras非常有趣的替代品。

GLUON优点:

在Gluon中,您可以使用简单,清晰和简洁的代码定义神经网络。 它将训练算法和神经网络模型结合在一起,从而在不牺牲性能的情况下提供开发过程的灵活性。 Gluon可以定义动态的神经网络模型,这意味着它们可以动态构建,使用任何结构,并使用Python的任何本机控制流。 SWIFT

当你听到Swift时,您可能会考虑iOS或MacOS的应用程序开发。但是如果你正在学习深度学习,那么你一定听说过Swens for Tensorflow。通过直接与通用编程语言集成,Swift for TensorFlow可以以前所未有的方式表达更强大的算法。SWIFT基本特性:

可以轻松获得可微分的自定义数据结构。 下一代API 。通过实践和研究获得的新API更易于使用且更强大。 在TensorFlow的基础上 ,Swift API为您提供对所有底层TensorFlow运算符的直接调用。 基于Jupyter、LLDB或者Swift in Colab的编程工具提高了您的工作效率。

SWIFT优点:

如果动态语言不适合您的任务,那么这将是一个很好的选择。当你训练运行了几个小时,然后你的程序遇到类型错误,那么使用Swift,一种静态类型语言。您将看到代码错误的地方。 Chainer

直到CMU的DyNet和Facebook的PyTorch出现之前,Chainer是动态计算图或网络的领先神经网络框架,它允许输入数据长度不一致。chainer基本特性:

Chainer代码是在Numpy和CuPy库的基础之上用纯Python编写的, Chainer是第一个使用动态架构模型的框架。

Chainer优点:

通过自己的基准测试,Chainer明显比其他面向Python的框架更快,TensorFlow是包含MxNet和CNTK的测试组中最慢的。 比TensorFlow更好的GPU和GPU数据中心性能。最近Chainer成为GPU数据中心性能的全球冠军。 DL4J

那些使用Java或Scala的人应该注意DL4J(Deep Learning for Java的简称)。DL4J的基本特性:

DL4J中的神经网络训练通过簇的迭代并行计算。 该过程由Hadoop和Spark架构支持。 使用Java允许您在Android设备的程序开发周期中使用。

DL4J优点:

如果您正在寻找一个良好的Java深度学习框架,这会是一个非常好的平台。 ONNX

ONNX项目诞生于微软和Facebook,旨在寻找深度学习模型呈现的开放格式。ONNX简化了在人工智能的不同工作方式之间传递模型的过程。因此ONNX具有各种深度学习框架的优点。

ONNX基本特性:

ONNX使模型能够在一个框架中进行训练并转移到另一个框架中进行推理。ONNX模型目前在Caffe2,Microsoft Cognitive Toolkit,MXNet和PyTorch中得到支持,并且还有许多其他常见框架和库的连接器。

ONNX优点:

对于PyTorch开发人员来说,ONNX是一个好的选择。但是对于那些喜欢TensorFlow的人来说,Keras等可能好一点。 总结

那么您应该使用哪种深度学习框架?下面是几点建议:

如果你刚刚开始学习,那么最好的选择是Keras 。 出于研究目的,请选择PyTorch 。 对于生产,您需要关注环境。因此对于Google Cloud,最好的选择是TensorFlow ,适用于AWS - MXNet和Gluon 。 Android开发人员应该关注D4LJ ,对于iOS来说, Core ML会破坏类似的任务范围。 最后, ONNX将帮助解决不同框架之间的交互问题。

2020年十大最佳自动化测试工具

技术图片

 

 

Best Automation Testing Tools for 2020

对更快交付高质量软件(或"快速质量")的需求要求组织以敏捷,持续集成(CI)和DevOps方法论来寻找解决方案。测试自动化是这些方面的重要组成部分。最新的《 2018-2019年世界质量报告》表明,测试自动化是实现"快速质量"的最大瓶颈,因为它是成功采用敏捷和DevOps的推动力。

没有好的工具就无法实现测试自动化。因为它们决定了如何执行自动化以及是否可以实现自动化的好处。测试自动化工具是DevOps工具链中的关键组件。在应用人工智能和机器学习(AI / ML)来提供用于测试优化,智能测试生成,执行和报告的高级功能方面,当前的测试自动化趋势已经增长。有必要了解哪种工具最适合利用这些趋势。

这些顶级的自动化测试工具被认为可以最好地解决未来几年自动化领域的挑战。从以下条件中选择此列表中包括的工具:

- 支持API和服务测试

- 提供一些AI / ML和分析功能

- 知名度和成熟度

技术图片

 

 

Top 5 Automation Testing Tools for 2020

加入我们,群。642830685,领取最新软件测试资料大厂面试和Python自动化、接口、框架搭建学习资料、测试工具安装包!

1.Selenium

技术图片

 

 

 

Selenium是测试自动化的家喻户晓的名字。它被认为是Web应用程序用户界面自动化测试的行业标准。根据"测试自动化挑战调查"显示,十分之九的测试人员中有近九位在其项目中使用或曾经使用过硒。

对于具有编程和脚本编写经验和技能的开发人员和测试人员,Selenium提供了许多其他测试自动化工具和框架所不具备的灵活性。用户可以使用多种语言(例如Java,Groovy,Python,C#,PHP,Ruby和Perl)编写测试脚本,这些脚本可以在多种系统环境(Windows,Mac,Linux)和浏览器(Chrome,Firefox,IE和 无头浏览器)。

Selenium最近于2019年4月发布了其第一个alpha版本的Selenium。Selenium4正式版的发布尚未确定;目前,Selenium 4正式发布。但是您可以期望该版本将具有许多改进和丰富的功能。

为了有效地使用Selenium,用户必须具备高级编程技能,并且需要花费大量时间来构建自动化所需的自动化框架和库。这是Selenium的主要缺点,可通过Katalon Studio等集成工具解决。

许可证:开源

2. Katalon Studio

技术图片

 

 

 

Katalon Studio是功能强大且全面的自动化解决方案,用于测试API,Web,移动和桌面应用程序测试。它还为这些类型的测试提供了丰富的功能集,并支持包括Windows,macOS和Linux在内的多个平台。

利用Selenium和Appium引擎,Katalon Studio为那些难以集成和部署不同框架和库以使用Selenium和Appium的测试人员以及已经熟悉这些引擎的测试人员提供了一个独特的集成环境。

Katalon Studio赢得了Gartner Peer Insights客户的软件测试自动化大奖,获得了450多项正面评价,该评论获得了450多项正面评价,这再次证明该工具现在是市场上最大的公司之一。

该工具的重点包括:

- API / Web服务,Web和移动应用程序的测试自动化的完整功能集
- 同时支持SOAP和RESTful的API和服务测试
- 数百个用于创建测试用例的内置关键字
- 可用于自动化和探索性测试
- 可以通过Katalon Store上的插件扩展测试功能,深入了解Katalon TestOps上的报告

许可证:免费

3. UFT

技术图片

 

 

 

UFT是测试桌面,Web和移动应用程序的流行商业工具。它已扩展为包括一组用于API测试的功能。通过为被测目标应用程序(AUT)支持多个平台,UFT提供了一种方便的选择来测试可在台式机,Web和移动设备上运行的AUT。

UFT为智能对象检测,基于图像的对象检测和校正提供了几种高级功能。在2019年5月,Microfocus已发布具有新功能和增强功能的最新版UFT(v14.53)

该工具的特点包括:

- 直观的用户界面,用于创建,执行和报告API测试
- 支持从WADL文档生成API测试
- 测试的动作,活动和参数可以在图表中可视化

许可证:每年3,200美元起。

 

 

 

4. TestComplete

技术图片

 

 

 

今年,TestComplete凭借其强大,全面的Web,移动和桌面应用程序测试功能继续名列前茅。测试人员可以使用JavaScript,VBScript,Python或C ++ Script编写测试脚本。

与UFT一样,TestComplete具有对象识别引擎,可以准确地检测动态用户界面元素。该引擎在具有动态且经常更改的用户界面的应用程序中特别有用。

最新的TestComplete版本14.2包括与Jenkins的本机集成,以加速CI / CD流程,对Web测试组件(如Shadow DOM和自定义元素)的支持以及对所有最新浏览器版本和移动平台的支持。

测试人员可以轻松使用TestComplete的记录和回放功能,例如Katalon Studio。他们可以将检查点插入测试步骤以验证结果。作为SmartBear的产品,TestComplete可以轻松地与SmartBear提供的其他产品集成。

许可:每位用户每年$ 9,114起

 

5. SoapUI

技术图片

 

 

 

SoapUI不是用于Web或移动应用程序测试的测试自动化工具;但是它可以作为测试API和服务的首选工具。它是专门为API测试而设计的无头功能测试工具。

SoapUI支持REST和SOAP服务。API自动化测试人员可以使用开源版本或专业版。专业版具有友好的用户界面和一些高级功能,例如断言向导,表单编辑器和SQL查询生成器。SoapUI是SmartBear提供的ReadyAPI套件的工具。

该工具为API测试提供了相当全面的功能集,其中包含许多高级功能,其中包括:

- 拖放,点击即可轻松生成测试
- 使用文件和数据库中的数据进行强大的数据驱动测试
- 异步测试
- 脚本可以轻松重用
- 使用RESTful模拟创建模拟服务

此外,SoapUI最近将SoapUI Pro的API Explorer功能引入了开源版本,从而使开发人员和测试人员可以立即调试其API的响应。

许可:SoapUI打包和分发为两个版本,开源和Pro。后者的起价为每年659美元。

请注意,SoapUI和Postman仅是此列表中几个顶级API测试工具的两个代表。要了解有关这些工具之间比较的更多信息,请参阅此文章。

6. IBM Rational Functional Tester(RFT)

技术图片

 

 

 

IBM Rational Functional Tester是一个测试自动化工具,旨在测试使用不同语言和技术开发的应用程序,例如Web,.Net,Java,Visual Basic,Siebel,SAP,PowerBuilder,Adobe Flex和Dojo Toolkit。它也是用于功能和回归测试的数据驱动测试平台。

RFT提供了一个称为"故事板测试"的功能,该功能可以使用自然语言和应用程序屏幕截图来可视化和编辑测试。RFT的ScriptAssure功能使测试人员能够生成可适应AUT用户界面变化的测试脚本。RFT还可以与其他IBM应用程序生命周期管理工具集成,例如IBM Rational Team Concert和Rational Quality Manager。

执照:商业

7. Tricentis Tosca

技术图片

 

 

 

有一些连续的测试平台可提供全面的工具集,以支持大多数(如果不是全部)测试活动,从测试设计和测试自动化到测试报告和分析。Tricentis Tosca是其中之一。

该工具具有许多功能,例如仪表板,分析,集成和分布式执行,以支持持续集成和DevOps实践。此外,它提供了友好的用户界面和丰富的功能集,可用于设计,实施,执行,管理,优化API测试。

该工具的其他一些亮点:

- 可以轻松集成为DevOps流程的关键部分
- 可以在浏览器,移动设备和平台上执行API测试
- 启用了多种协议和标准,包括HTTP JMS,AMQP,Rabbit MQ,TIBCO EMS,SOAP,REST和IBM MQ
- 一套很好的测试报告和分析功能

Tricentis声称将大大减少回归测试(在数周至数分钟的时间内)。但是,此声明需要由测试团队仔细验证。

执照:商业

8.Ranorex

技术图片

 

 

 

已经存在很多年了,Ranorex为Web,移动,桌面和API测试提供了一套全面而专业的功能。利用其在基于桌面的测试自动化中的经验,Ranorex具有用于UI元素识别,编辑和管理的高级功能。

与Katalon Studio一样,Ranorex友好而直观的GUI,记录/回放和脚本生成功能使测试人员可以轻松进行自动化测试。

测试人员可以将Ranorex与Selenium Grid集成在一起,以实现分布式测试以及并行测试执行。

许可:附加组件为690欧元,高级许可为2290欧元起。

9.Postman

技术图片

 

 

 

Postman是专为API测试设计的另一种自动化工具。用户可以在Mac,Linux,Windows上以浏览器扩展或桌面应用程序的形式安装此工具。它不仅在用于API测试自动化的测试人员中很流行,而且在使用该工具开发和测试API的开发人员中也很流行。实际上,它是用于开发和测试API的开发环境。

该工具的一些亮点:

- 用于设计,调试,测试,记录和发布API的综合功能集
- 友好且易于使用的用户界面
- 支持自动化和探索性测试
- 接受Swagger和RAML API格式
- 请求和应答者可以打包并与团队成员共享

执照:商业

10. Apache JMeter

技术图片

 

 

 

JMeter是设计用于测试加载和性能测量的开源工具-JMeter的两个功能是众所周知的。但是,该工具现在也用于API和服务测试,尤其是API性能。JMeter是第三种最受欢迎的测试自动化工具,在"测试自动化挑战"调查中有25%的受访者引用了JMeter的信息。

该工具的重点包括:

轻巧,具有简单易用的用户界面
测试结果可以重播
支持CSV文件来设置API参数的值
支持与CI工具(例如Jenkins)集成。JMeter通常用作CI和DevOps工具链的一部分
许可证:开源

这里列出的顶级工具并不详尽。但是它代表了成熟,流行的最佳工具,并提供了使用AI / ML的功能来解决组织在交付"快速质量"时面临的挑战。此列表还包括仅支持API和服务测试对于成功进行敏捷和DevOps转换至关重要。

您选择的测试工具不仅应满足您当前的需求,而且还应关注潜在的趋势和改进。体面的工具应支持基本优化,测试用例和数据生成的自动化,更智能的解决方案以及分析。

随着增长的机会,将引入更多的工具;即使组织中的测试自动化水平低至14%到18%之间(WQR报告)。此外,很高兴看到现有和即将推出的工具如何应用AI / ML来应对未来的挑战。API和服务测试也是一种趋势,将来应该会得到进一步的发展。

 

若是您也赞同,点个赞呗!加入我们,群。642830685,领取最新软件测试资料大厂面试和Python自动化、接口、框架搭建学习资料、测试工具安装包!

 

 

 

以上是关于2019年十大最佳深度学习框架的主要内容,如果未能解决你的问题,请参考以下文章

值得我们深度学习的十大开源框架

对比深度学习十大框架:TensorFlow 并非最好?

一文概述 2018 年深度学习 NLP 十大创新思路

从2019 AI顶会最佳论文,看深度学习的理论基础

2019 深度学习框架大盘点!看 PyTorchTensorFlow 如何强势上榜?

深度学习及机器学习框架对比摘要