深度学习三大框架之争(Tensorflow、Pytorch和Keras)
近几年,随着深度学习指数级发展,深度学习的框架使用在人工智能领域也起着举足轻重的作用,这其中包括Tensoflow、Pytorch、Keras、Caffe等等。
那么面对这些框架,究竟使用哪个呢?答:其实,这几个框架都有各自的优点,大家了解后可以根据自己的情况进行选择;下面我们就来看看吧!!(本文纯属是唠唠嗑的,想直接知道自己适合使用哪种框架的,可以直接滑倒文末看结论 )
1、Tensoflow
TensorFlow由Google智能机器研究部门Google Brain团队研发的;TensorFlow编程接口支持Python和C++。随着1.0版本的公布,相继支持了Java、Go、R和Haskell API的alpha版本。
在2017年,Tensorflow独占鳌头,处于深度学习框架的领先地位;但截至目前已经和Pytorch不争上下。
Tensorflow目前主要在工业级领域处于领先地位。
2、Pytorch
Pytorch目前是由Facebook人工智能学院提供支持服务的。
Pytorch目前主要在学术研究方向领域处于领先地位。
其优点在于:PyTorch可以使用强大的GPU加速的Tensor计算(比如:Numpy的使用)以及可以构建带有autograd的深度神经网络。
同时,PyTorch 的代码很简洁、易于使用、支持计算过程中的动态图而且内存使用很高效。
3、Keras
Keras是基于Tensorflow用纯python编写的深度学习框架,也就是说它是在Tensorflow的基础上再次集成的;所以,他的代码会更加简洁方便,适于初学者;但因为它是在Tensorflow的框架上再次封装的,那么运行速度肯定就没有Tensorflow快了。
其主要优点在于:用户友好
Keras可以说是专为人类的API;Keras遵循减少认知困难的最佳实践:Keras提供一致而简洁的API, 能够极大减少一般应用下用户的工作量。所以,当Pytorc和Tensoflow的框架代码看不懂的时候,试试Keras也是未尝不可的。易扩展性
添加新的网络层等是非常容易的,只需要仿照现有的模块编写新的类或函数,然后使用model.add()即可。创建新模块的便利性使得Keras更适合于先进的研究工作。综上所述:Tensorflow更倾向于工业应用领域,适合深度学习和人工智能领域的开发者进行使用,具有强大的移植性。Pytorch更倾向于科研领域,语法相对简便,利用动态图计算,开发周期通常会比Tensorflow短一些。Keras因为是在Tensorflow的基础上再次封装的,所以运行速度肯定是没有Tensorflow快的;但其代码更容易理解,容易上手,用户友好性较强。
更新:目前Keras框架已经被集成到Tensorflow里了,在TensorFlow 2.0及其之后的版本中,Keras已经成为TensorFlow的默认高级API,使得用户可以更加方便地使用Keras构建、训练和评估深度学习模型。
demo: