pytorch keras tensorflow深度学习框架对比

一、前言

目前用于深度学习的框架比较多,有tensorflo、keras、pytorch、theano、caffe等,这些框架都能很好的帮助我们训练深度学习的模型。因为本人主要从事的是自然语言领域的工作,经常使用的三个框架:pytorch、keras、tensorflow,下面就对这三个框架做一个简单的对比。

 

二、keras

Keras是一个高层神经网络API,后端有三种:tensorflow、Theano、CNTK。Keras是三个深度学习框架中最为简单的一个框架。

最大的特点(个人观点):入门最简单,要想快速搭建一个深度学习模型,可以推荐使用keras。

缺点:作为一个高层神经网络API,底层进行了很多的封装,导致了很多隐藏的bug在封装之中,而且调试也不太方便。

 

三、tensorflow

tensorflow是一个静态图框架,也是目前最流行的深度学习框架。

最大的特点(个人观点):tensorflow可以在各种服务器和移动设备上部署自己训练的模型

缺点:接口频繁变动(这点我很受不了)、系统设计复杂、调试是个黑盒(这个很不爽)

虽然现在tensorflow推出2.0版本,也是仿pytorch的一个动态图框架,但是看很多反馈都是吐槽的多。

 

四、pytorch

pytorch是一个动态图框架,在每一次的前向传播都会创建一个新的计算图。

特点:灵活,调试方便、速度也非常的快。

缺点:在部署上没有tensorflow这么有优势。

 

总结:

pytorch这种动态图框架逐渐成为未来的发展趋势,尤其是在自然语言处理领域,我首推pytorch这个框架,自然语言处理领域的attention机制分量越来越足,keras没有官方的attention,keras和tensorflow在代码调试方面都非常的不好用。

 

参考资料:

https://www.fast.ai/2017/09/08/introducing-pytorch-for-fastai/

你可能感兴趣的:(自然语言处理,自然语言处理)