Series

Series

深度学习22 篇

用 PyTorch 从搭建模型、训练、调试到部署的一组笔记。按下面的顺序阅读,后面的文章会直接引用前面讲过的内容

模型结构
  1. PyTorch CNN整理 PyTorch 卷积神经网络中各层的输出尺寸、参数量与感受野的计算方法,常用的网络结构,以及查看各层输出形状的方式
  2. PyTorch Transformer整理 PyTorch 中 Transformer 的张量形状、注意力计算、掩码、位置编码与参数量,常用的模型结构,以及语言模型的训练、逐词生成与 KV 缓存
  3. Vision Transformer整理 Vision Transformer 把图像送入 Transformer 的方式,包括图像块嵌入、分类标记与位置嵌入、一个小型 ViT 的实现与参数量、与 CNN 的对比实验、改变输入分辨率的方法,以及注意力的查看
训练
  1. PyTorch Data Loading整理 PyTorch 的数据加载与数据增强,包括 Dataset、DataLoader、变长样本的整理以及训练与验证时的图像变换
  2. PyTorch Training整理 PyTorch 的训练流程,包括损失函数、优化器与学习率调度、训练与验证循环,以及梯度裁剪、梯度累积、混合精度、提前停止等训练技巧
  3. Optimizers and Learning Rate Schedules整理优化器与学习率调度的原理,包括 SGD、动量、RMSprop、Adam、AdamW 的更新公式及其与 PyTorch 实现的逐步对照,预热、余弦退火等调度的公式,以及学习率与批大小的关系
  4. PyTorch Checkpoints and Reproducibility整理 PyTorch 训练中检查点的保存与恢复、weights_only 的含义,以及固定随机种子和 GPU 上的不确定性
  5. Normalization and Regularization整理 PyTorch 中各种归一化层的统计维度与手动计算、BatchNorm 在训练和推理时的区别,以及权重衰减、Dropout、标签平滑等正则化方法的用法与实测效果
  6. PyTorch Debugging整理 PyTorch 训练出现问题时的排查顺序,以及 NaN、学习率、梯度、过拟合与欠拟合问题的定位方法
  7. PyTorch Common Mistakes整理 PyTorch 中不报错但结果错误的常见问题,包括损失函数的输入、梯度清零、广播、eval 模式、计算图被切断以及标签的类型与范围
  8. PyTorch Memory and Speed整理 PyTorch 训练中显存不足的原因与处理方法,以及怎样找出训练速度的瓶颈
  9. Evaluation Metrics整理深度学习模型常用评估指标的含义、容易产生误导的情况与计算方法,包括混淆矩阵、精确率与召回率、ROC 与 PR 曲线、回归、分割与语言模型的指标,以及指标的正确累积方式
  10. TensorBoard整理 TensorBoard 在 PyTorch 中的用法,包括 SummaryWriter 的各种记录方法、启动与远程查看,以及记录频率、关闭写入器、事件文件大小等常见问题
  11. Experiment Tracking整理训练实验的记录与比较方法,包括需要记录的内容、实验目录的组织、日志与指标文件、在训练脚本中记录以及多次实验的比较
  12. PyTorch Distributed Training整理用 DistributedDataParallel 进行多进程、多显卡训练的方法,包括进程组与 torchrun、最小的训练脚本、同步的验证、常见的注意事项、DataParallel 以及启动与排错
任务
  1. PyTorch Fine-Tuning整理 PyTorch 中迁移学习与微调的做法,包括加载预训练模型、冻结参数、分层学习率、加载部分权重与 LoRA,以及从头训练、特征提取、全量微调的对比实验
  2. Object Detection整理目标检测的基本组成:边界框格式、IoU、非极大值抑制、锚框、检测头输出的解码、损失函数、mAP 的计算,以及预训练检测器的使用和坐标映射
  3. Image Segmentation整理图像分割的任务类型、掩码格式与数据增强、U-Net 的实现、交叉熵与 Dice 损失、训练与评价指标、推理后处理,以及 torchvision 预训练分割模型的使用
  4. Keypoint Detection整理关键点检测的坐标回归与热力图两种表示、热力图的生成与亚像素解码、可见性掩码与训练、PCK 和 OKS 指标、坐标映射与翻转增强中的左右互换,以及由二维关键点用 PnP 求解位姿
  5. Generative Models整理自编码器与 VAE、GAN、扩散模型的思路与最小的 PyTorch 实现,以及条件生成、无分类器引导和生成结果的评价方式
部署
  1. PyTorch Deployment整理 PyTorch 模型从训练到推理的过程,包括推理前的准备、导出 ONNX、ONNX Runtime 推理、预处理一致性、量化、耗时测量,以及 TensorRT 与 C++ 推理
  2. Model Compression整理让训练好的模型变小、变快的几种做法,包括非结构化剪枝与结构化剪枝、知识蒸馏、伪量化与量化感知训练,以及它们在同一个小实验上实测的效果

计算机视觉4 篇

传统图像处理的常用操作,以及相机成像和坐标变换的基础

图像处理
  1. Image Filtering梳理线性滤波、非线性滤波与形态学滤波的原理,以及对应的 OpenCV 函数和使用示例
  2. Edge Detection介绍图像边缘检测的评价标准,以及 Canny、Sobel、Laplacian 算子的原理和 OpenCV 用法
相机与几何
  1. Homogeneous Transformation Matrix整理三维空间中的平移、旋转、镜像、缩放矩阵,齐次变换矩阵的组成、求逆与链式变换,以及欧拉角和四元数
  2. Field of View介绍标准镜头与鱼眼镜头在不同投影模型下,由焦距和传感器尺寸计算视场角的方法

C++5 篇

C++ 标准库和语言特性的用法整理,以及进程间通信

语言与标准库
  1. C++ Containers梳理 C++ STL 序列容器、关联容器、无序容器与容器适配器的特性、接口差异和使用方式
  2. C++ Lambda Expressions介绍现代 C++ Lambda 表达式的语法、捕获方式、泛型 Lambda 与使用中的注意事项
  3. C++ Multithreading系统整理 C++ 多线程、同步原语、原子操作、异步任务与线程管理
  4. Formatted Output汇总 printf 格式控制符、C++ 与 Python 的格式化输出,以及终端彩色输出和光标控制的转义序列
通信
  1. ZeroMQ Messaging介绍 ZeroMQ 的安装与源码编译、通信模式、传输协议、CURVE 加密认证,以及 C++ 与 Python 下的用法

Linux4 篇

Ubuntu 的系统配置、常用命令行工具、文件系统挂载和 Docker

系统
  1. Ubuntu Optimization汇总 Ubuntu 的语言、内存、时间、显卡及常用系统优化配置
  2. Linux Tools整理 Linux 下 ssh、scp、rsync、screen、tmux、tar、grep、find、shc、wine 等常用工具的安装与用法
  3. Linux Mounting汇总 Linux 文件系统类型、挂载与卸载命令、挂载选项及 fstab 配置
容器
  1. Docker Configuration记录 Docker 的免 sudo 权限、守护进程与容器的代理配置、容器内使用 NVIDIA 显卡,以及显示 ROS 图形界面的方法