libtorch组成讲解之ATen、c10、at、csrc

l i b t o r c h 组成讲解 libtorch组成讲解 libtorch组成讲解


三大命名空间: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的C++接口主要是通过ATen(A Tensor Library)张量计算库来实现的,主要在Pytorch源代码的aten目录下。

Pytorch的aten目录下的主要构成:

  1. ATen(ATen核心源文件)
  2. TH(Torch 张量计算库)
  3. THC(Torch CUDA张量计算库)
  4. THCUNN(Torch CUDA神经网络库)
  5. THNN(Torch神经网络库)

C10,来自于Caffe Tensor Library的缩写。这里存放的都是最基础的Tensor库的代码,可以运行在服务端和移动端。PyTorch目前正在将代码从ATen/core目录下迁移到C10中。

C10主要目的之一是为了统一Pytorch的张量计算后端代码和caffe2的张量计算后端代码


csrc模块介绍

1.C++和python的API之间的相互映射。比如pytorch的nn.Conv2d对应于torch中的at:conv2d
2.autograd和自动求导机制

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值