三大命名空間:at、torch、c10
1.at(ATen)負責聲明和定義Tensor運算,是最常用到的命名空間
2.c10是 ATen 的基礎,包含了PyTorch的核心抽象、Tensor和Storage資料結構的實際實作
3.torch命名空間下定義的 Tensor 相比于ATen 增加自動求導功能
ATen,來自于 A Tensor library for C++11的縮寫,ATen部分有大量的代碼是來聲明和定義Tensor運算相關的邏輯的
PyTorch的源代碼主要是通過C++編寫的,同時C++的接口暴露出來給Python調用。
Pytorch的aten目錄下的主要構成:
- ATen(ATen核心源檔案)
- TH(Torch 張量計算庫)
- THC(Torch CUDA張量計算庫)
- THCUNN(Torch CUDA神經網絡庫)
- THNN(Torch神經網絡庫)