2.1.4 PyTorch
PyTorch是一个Python优先的深度学习框架,能够在强大的GPU加速基础上实现张量和动态神经网络。
PyTorch是一个Python软件包,提供了如下两种高层面的功能。
·使用强大的GPU加速的Tensor计算(类似Numpy)。
·构建基于tape框架的autograd系统深度神经网络。
除此之外,PyTorch提供了完整的官方文档、帮助用户循序渐进地学习的用户指南,以及作者亲自维护的论坛以供用户交流和求教。Facebook人工智能研究院FAIR对PyTorch提供了强力支持,作为当今世界排名前三的深度学习研究机构,FAIR的力挺足以确保PyTorch获得持续开发、更新的支持,不至于像许多由个人开发的框架那样只是昙花一现。
如有需要,你也可以使用自己喜欢的Python软件包(如Numpy、scipy和Cython)来扩展PyTorch。
相对于TensorFlow,PyTorch有一个显著优点,就是它的图是动态的,而TensorFlow是静态的,不利于扩展。同时,PyTorch的使用非常方便。本书选取PyTorch为自然语言处理的主要实现框架。
总结:如果说TensorFlow的设计是“Make it complicated”,Keras的设计是“Make it complicated and hide it”,那么PyTorch的设计真正做到了“Keep it Simple,Stupid”。
深度学习框架该如何选择?
初学者往往纠结于选择哪个深度学习框架作为学习的开始。在这里笔者建议初学者选择容易上手、非过度调用接口的框架。另外对于初学者来说,所选框架应具备易用性强、性能佳、社区完善以及平台支持等特点。当今行业内各大公司使用的框架也都不尽相同,因此初学者可以考虑掌握多个框架(比如PyTorch和TensorFlow)以应对未来的职场要求。