本文会大篇幅介绍整个深度学习框架设计模式,将会持续更新
笔者不会介绍基础知识,它不是一个从零开始的记录。
1. 目录结构
1. torch:python 代码部分, the frontend, 我们在代码中引入并使用的Python 模块(modules),基本都在这里
2. torch/csrc: python bindings, 这部分C++代码实现了所谓的PyTorch前端(the frontend of PyTorch)。
具体来说,这一部分主要桥接了Python逻辑的C++的实现,和一些PyTorch中非常重要的部分,比如自动微分引擎(autograd engine)和JIT编译器(JIT compiler)。
3. aten/src/ATen: 是”A Tensor Library”的缩写,是一个C++库实现了Tensor的各种operations。
ATen 内对operators的实现分成两类,一种是现代的C++实现版本(native),另一种是老旧的C实现版本(legacy)。
4. c10: 是一个来自于Caffe2 和 A”Ten“的双关语(Caffe 10),其中包含了PyTorch的核心抽象,Tensor和Storage数据结构的实际实现部分。