dl

深度学习基础

Posted by whaler404 on October 1, 2024

书籍

动手学深度学习
动手学深度学习v2
深入浅出PyTorch
eat_pytorch_in_20_days
chenyuntc/pytorch-book

文档

AutoDL 帮助文档
Pytorch tutorial
Pytorch Doc

博客

廖雪峰的 Python 教程
labml side-by-side notes
citisy 的炼丹房
llm_interview_note
GiantPandaCV CV 学术和工程方面的干货

项目

labml.ai Deep Learning Paper Implementations
Awesome-pytorch-list
pytorch-tutorial
torch-template-for-deep-learning
pytorch-template-by-victoresque
pytorch-template-by-songquanpeng

wonderful-prompts

文章

GPU

GPU 利用率是一个具有误导性的指标|nvidia-smi不能反映真正的GPU性能
GPU 架构与 CUDA 关系
显卡、显卡驱动、cuda 之间的关系是什么?

Pytorch

PyTorch:一文了解pytorch模块结构
pytorch框架的详细介绍与应用详解
如何提高自己的代码能力以达到熟练使用pytorch?
PyTorch半精度训练/混合精度训练

一个Tensor的生命历程(Pytorch版)
PyTorch 内部机制解析:如何通过 PyTorch 实现 Tensor
python中的包
PyTorch中的pyi档案生成机制

torch的广播机制(broadcast mechanism)
【Pytorch】对比clone、detach以及copy_等张量复制操作
【Pytorch】区分detach()和torch.no_grad()
20天吃掉那只Pytorch————2-3,动态计算图

Trick

大家写深度学习代码的时候,都是怎么检查代码错没错的?
深度学习调参有哪些技巧?
为什么用pytorch cuda,明明显存很够用,却报错out of memory?

网络架构

存在错误标注的伪标签为什么会帮助训练出更好的模型?
深度学习中Dropout原理解析
为什么残差连接的网络结构更容易学习?
为什么 Bert 的三个 Embedding 可以进行相加?
Transformer模型详解(图解最完整版)
一文读懂KVCache

Python

原来 Python 也有重载?
pyi文件是干嘛的?(一文读懂Python的存根文件和类型检查)
python __init__.py 文件的用法
浅析什么是HOOK

如何获取 Python 模块的路径?torch.__file__

Pytorch 学习笔记

更多 pytorch 模块的功能介绍见 Pytorch 官方文档 或使用 help() 函数查看

Tensor操作分类

  • 结构操作:
    1. 创建张量:tensor、arange、linspace、zeros、zeros_like、ones、ones_like、fill、manual_seed、rand、randn、normal、randperm、eye、diag
    2. 索引切片:tensor[0,1,2:4,:4,::2]、narrow、index_select、take、masked_select、where、index_fill、masked_fill、scatter、gather
    3. 维度变换:view、reshape、squeeze、unsqueeze、transpose、permute、flatten、expand、repeat
    4. 合并分割:stack、cat、split、chunk、unbind

    Tensor View 机制视图张量与其基本张量共享相同的基础数据,支持进行快速且内存高效的重塑、切片和逐元素操作。

  • 运算操作:
    1. 标量运算:neg、add、sub、mul、div、floor_divide、fmod、remainer、pow、sqrt、abs、exp、log、sigmoid、ge、le、eq、floor、ceil、max、round、trunc、min、argmax、argmin、clamp
    2. 向量运算:sum、mean、prod、var、std、median、cum、sort、topk
    3. 矩阵运算:matmul、mm、bmm、t、inverse、trace、norm、det、eig、qr、svd、tensordot、einsum
    4. 广播运算:broadcast_tensors

torch.nn 模块:

  • 一般将参数用 nn.Parameter 来表示,并且用 nn.Module 来管理其结构下的所有参数。
  • nn.functional 有各种功能组件的函数实现,但为了便于对参数进行管理,一般通过继承 nn.Module 转换成为类的实现形式,并直接封装在 nn 模块下
  • 支持多种模型容器和模型层

torch.util.data 模块:Dataset 定义了数据集的内容,DataLoader 定义了按 batch 加载数据集的方法