PyTorch解读
2020-11-15 本文已影响0人
stupidXY
pytorch的以其简单、易用、高效的特点迅速从机器学习框架中脱颖而出,广泛应用于学术研究与产业部署中。
根据RISELab(隶属于University of California, Berkeley),在2019.1~2019.6发表于arXiv.org的论文中,提及的机器学习框架TensorFlow和PyTorch位居前两位,两者数量相差无几。但就增速度而言,与2018.1~2018.6发表于arXiv.org论文中出现TensorFlow和PyTorch的数量相比,Tensor增长23%,PyTorch达到惊人的194%。
PyTorch的FRONT-END主要由Python实现,当然最近的版本中加入了C++ FRONT-END,但从使用者角度,Python的user-friendly优势体现得淋漓尽致,因而Python前端占据绝对优势。
如果作为一个使用者,掌握PyTorch的FRONT-END足以,但作为一个机器学习框架的设计者或工程师,则远远不够。作为一个机器学习框架的设计者或工程师,总得under the hood,钻进魔术师的斗篷,去看看魔术究竟是如何实现的。
要想知道PyTorch是如何实现的,必须了解PyTorch的BACK_END,当前解读PyTorch后端的相关文章多为PyTorch1.3及其之前的版本,因PyTorch版本迭代迅速,这些解读文章的部分内容已不再适用,因此本文集将较新的PyTorch1.6的BACK_END系列文章构成,首重讲解PyTorch较为核心的Tensor、nn、AutoGrad,对于每篇讲解文章以总体框架、关键细节、涉用技术3个部分组成。