讲今讲古 发表于 2023-7-19 09:41:28

机器学习库的斗劲

框架斗劲

深度学习的库有很多,这里主要分析pytorch、tensorflow、keras、sklearn四个机器学习或深度学习框架。
一个分歧于其它框架的库


对上述四个框架进行基本的分类,虽然他们都是可以进行数据的分析和预测,在我看来,sklearn并不属于框架的一种。严格说,一个深度学习框架应该是一种具有以计算图为语义模型的内部范围特定语言(DSL)。sklearn属于一个机器学习库,它没有语义模型,仅仅提供了对于统计机器学习任务(如:分类、回归等)的封装,使用者可以通过fit等函数去拟合实际数据。它成立在numpy和scipy基础上,提供了一系列可用的运算模型,比如SVM,线性回归模型。使用者在fit后使用predict方式就可以在拟合好的基础上对新的输入数据进行预测。然而,sklearn不撑持gpu。

最热门的深度学习框架


最先兴起的深度学习框架tensorflow是谷歌在2015年发布的。

tensorflow最大的优势就是在于文档全面,社区规模大。这对于初学者是很大的优势。我主要存眷框架的科研和工程两方面。

工程方面


计算机工程主要垂青的是运行速度。tensorflow的运行速度比pytorch要快一些。而且由于使用的人数多,生态环境也斗劲完善,呈现bug时容易寻找原因。

科研方面


科研范围主要存眷易用性,tensorflow 1.0的易用性和pytorch对比显然不高。对api 1.0而言,采用静态计算图,不能动态建图,运行时还要创建session十分不便。去年发布的tf 2.0版本改良了许多,使得tensorflow本身可以不用出格多的placeholder这些复杂概念就可以运行,也插手了动态图机制,但是要借助于内置的keras。

抽象程度更高的框架


最初的keras是一个易懂的多后端的框架,可以用tf为底层。后来谷歌为了完善tf,在tf中插手了keras,使得api 2.0更易用了一些。

工程方面


keras因为采用了tf作为后端,整体的性能要比pytorch好一些。

科研方面


在tf api 2.0中,由于引入了keras的易用后端,我相信科研工作者会慢慢喜欢上tf api 2.0 的。

科研工作的常用框架


pytorch是在2016年由facebook发布的,撑持动态计算图,这是它最大的优势。

工程方面


虽然pytorch可以代替tf,然而tf的速度依然有优势。
近几年tvm等一系列深度学习编译器的呈现把深度学习框架的速度优势磨平了。tvm的前端可以是pytorch模型,也可以是tensorflow模型。所以部署时两者编译出的计算图如果都用tvm优化,速度基本等同。

科研方面


pytorch呈现后,由于torch的api更加清晰,许多论文的实现都有pytorch版本,可以代替tensorflow。
页: [1]
查看完整版本: 机器学习库的斗劲