Pytorch文件夹结构

Pytorch文件夹结构

*pycache 缓存*

该文件夹存放python解释器生成的字节码,后缀通常为pyc/pyo。其目的是通过牺牲一定的存储空间来提高加载速度,对应的模块直接读取pyc文件,而不需再次将.py语言转换为字节码的过程,从此节省了时间。

从文件夹名称可知,它是一个缓存,如果需要,我们当然可以删掉它。

_C 封装起来的C++

从文件夹名称就知道它和C语言有关,其实它是辅助C语言代码调用的一个模块,该文件夹里存放了一系列pyi文件,pyi文件是python用来校验数据类型的,如果调用数据类型不规范,会报错。

PyTorch的底层计算代码采用的是C++语言编写,并封装成库,供pytorch的python语言进行调用。这一点非常重要,后续我们会发现一些pytorch函数无法跳转到具体实现,这是因为具体的实现通过C++语言。

include C++的头文件

上面讲到pytorch许多底层运算用的是C++代码,那么C++代码在哪里呢? 它们在这里,在torch/csrc文件夹下可以看到各个.h/.hpp文件,而在python库中,只包含头文件,这些头文件就在include文件夹下。

lib 链接库

torch文件夹中最重要的一个模块,torch文件夹占3.2GB的空间,98%的内容都在lib中,占了3.16GB空间。

lib文件夹下包含大量的.lib .dll文件(分别是静态链接库和动态链接库),例如大名鼎鼎的cudnn64_7.dll(占435MB), torch_cuda.dll(940MB)。这些底层库都会被各类顶层python api调用。

autograd 梯度自动求导

该模块是pytorch的核心模块与概念,它实现了梯度的自动求导,极大地简化了深度学习研究者开发的工作量,开发人员只需编写前向传播代码,反向传播部分由autograd自动实现,再也不用手动去推导数学公式,然后编写代码了。

nn 网络层?暂时不理解

相信这个模块是99%pytorch开发者使用频率最高的模块,搭建网络的网络层就在nn.modules里边。

onnx 不理解,后续补充

pytorch模型转换到onnx模型表示的核心模块,进入文件夹可以看到大量的opset**.py。

optim 优化模块

优化模块,深度学习的学习过程,就是不断的优化,而优化使用的方法函数,都暗藏在了optim文件夹中,进入该文件夹,可以看到熟悉的优化方法:"Adam"、"SGD"、"ASGD"等。以及非常重要的学习率调整模块,lr_scheduler.py。、

utils 工具?

utils是各种软件工程中常见的文件夹,其中包含了各类常用工具,其中比较关键的是data文件夹,tensorboard文件夹,这些工具都将在后续章节详细展开。


torchvision模块

datasets 数据读取函数

这里是官方为常用的数据集写的数据读取函数,例如常见的cifar, coco, mnist,svhn,voc都是有对应的函数支持,可以方便地使用轮子,同时也可以学习大牛们是如何写dataset的。

models 视觉模型库,暂时应该用不上

这里是宝藏库,里边存放了经典的、可复现的、有训练权重参数可下载的视觉模型,例如分类的alexnet、densenet、efficientnet、mobilenet-v1/2/3、resnet等,分割模型、检测模型、视频任务模型、量化模型。这个库中的模型实现,也是大家可以借鉴学习的好资料,可以模仿它们的代码结构、函数、类的组织。

ops 视觉任务特殊功能函数?

视觉任务特殊的功能函数,例如检测中用到的 roi_align, roi_pool,boxes的生成,以及focal_loss实现,都在这里边有实现。

transforms 视觉数据增强库

数据增强库,相信99%的初学者用到的第一个视觉数据增强库就是transforms了,transforms是pytorch自带的图像预处理、增强、转换工具,可以满足日常的需求。但无法满足各类复杂场景,因此后续会介绍更强大的、更通用的、使用人数更多的数据增强库------Albumentations。

参考:https://tingsongyu.github.io/PyTorch-Tutorial-2nd/chapter-2/2.1-module-tree.html

相关推荐
如若1231 天前
WSL2 启动报错“拒绝访问“ E_ACCESSDENIED 完整解决方案
人工智能·pytorch·python·深度学习·计算机视觉
蛐蛐蛐1 天前
在昇腾310P推理服务器上安装CANN和PyTorch
人工智能·pytorch·python·npu
剑穗挂着新流苏3121 天前
112_深度学习的导航仪:PyTorch 优化器(Optimizer)全解析
pytorch·深度学习·机器学习
吴佳浩1 天前
GPU 编号进阶:CUDA\_VISIBLE\_DEVICES、多进程与容器化陷阱
人工智能·pytorch·python
吴佳浩1 天前
GPU 编号错乱踩坑指南:PyTorch cuda 编号与 nvidia-smi 不一致
人工智能·pytorch·nvidia
云上的云端2 天前
vLLM-Ascend operator torchvision::nms does not exist 问题解决
人工智能·pytorch·深度学习
Zhansiqi2 天前
dayy43
pytorch·python·深度学习
写点什么呢2 天前
Pytorch学习16_损失函数与反向传播
人工智能·pytorch·python·学习·pycharm
罗罗攀3 天前
PyTorch学习笔记|张量的广播和科学运算
人工智能·pytorch·笔记·python·学习
IT阳晨。3 天前
PyTorch深度学习实践
人工智能·pytorch·深度学习