全文共3412字,预计学习时长7分钟
在对TensorFlow、PyTorch和Keras做功能对比之前,先来了解一些它们各自的非竞争性柔性特点吧。
非竞争性特点
下文介绍了TensorFlow、PyTorch和Keras的几个不同之处,便于读者对这三个框架有初步了解。列出这些区别的重点不在于对三者做比较,而在于做一个初步介绍。
TensorFlow
· 开发者:Google
· 2017年1月发布1.0版本
PyTorch
· 开发者:Facebook
· 2018年10月发布1.0版本
· 基于Torch开发(Torch是基于Lua开发的另一个深度学习框架)
Keras
· 是一个高级API,降低了深度学习框架的复杂程度
· 可以在其他深度学习API,如TensorFlow、Theano和CNTK上运行
· 本身并不是一个库
竞争性区别
下面将介绍这三个框架更加具有竞争性的区别。本文着重分析比较了这三个框架用于自然语言处理(Natural Language Processing,NLP)时的不同之处。
1. 可用的RNN类型
当试图用深度学习方法来解决NLP问题时,循环神经网络(Recurrent Neural Networks,RNNs)是开发者最常用的专业架构。因此,本文也选择从这一角度切入来比较TensorFlow、PyTorch和Keras框架。
本文比较的三种框架都具有可用于构建简单RNN以及更复杂的RNN——门控循环单元(Gated Recurrent Units,GRU)和长短时记忆网络(Long Short Term Memory networks,LSTM)的模块。
PyTorch:
PyTorch提供2种不同层次的类别(class)用于构建循环网络:
· 多层次类别(Multi-layer class