这是一个用于学习和实践 PyTorch 深度学习框架的个人项目仓库。本仓库将逐步实现和训练各种深度学习模型,并最终融入 Hugging Face Transformers 的学习与应用。
本项目在较难理解的代码处,均配有 Google Gemini Canvas 详细解析文档,便于深入理解核心实现与原理。你可以在相关代码文件的注释中找到对应的 Gemini Canvas 链接。
- 深入理解 PyTorch 框架的核心概念和 API。
- 手写实现并训练 经典的深度学习模型。
- 掌握 常见计算机视觉和自然语言处理任务。
- 探索并应用 Hugging Face Transformers 库进行前沿模型实践。
- 构建一个可复用 的模型训练与评估流程。
PyTorch/
├── data/...
├── models/
│ ├── VGG/...
│ ├── Transformer/...
│ ├── CLIP/...
│ ├── DETR/...
│ └── SAM/...
├── TEST/
│ ├── test_GPU.py
│ └── test_package.py
│
├── .gitignore
├── README.md
├── LICENSE
└── requirements.txt
| 模型 | 状态 | 年份 | 主要功能 | 数据集 |
|---|---|---|---|---|
| 1. VGG | ✅ 已完成 | 2014 | 图像分类 | CIFAR-10, CIFAR-100 |
| 2. Transformer | ✅ 已完成 | 2017 | 机器翻译 | Multi30k |
| 3. DETR | ✅ 已完成 | 2020 | 端到端目标检测 | Pascal VOC 2012 |
| 4. CLIP | ✅ 已完成 | 2021 | 跨模态图像-文本理解 | Flickr30k |
| 5. Mask2Former | 🚧 计划中 | 2021 | 统一的图像分割 | 待定(COCO, ADE20K, Cityscapes) |
| 6. SAM | ⚙️ 进行中 | 2023 | 通用图像分割 | Pascal VOC 2012 |
查看详情
- 实现状态: ✅ 已完成
- 发表时间: 2014 年 9 月
- 主要功能: 图像分类
- 数据集: CIFAR-10, CIFAR-100
- 简要说明: VGG 通过反复堆叠极小的 3x3 卷积核与 2x2 池化层,成功地构建了深达 16 或 19 层的统一网络结构。该模型有力地证明了增加网络深度是提升图像识别性能的关键,为后续更深模型的架构设计(如 ResNet)奠定了重要基础。
- 完成功能:
- 实现了 VGG-11,13,16,19 网络架构
- 支持 CIFAR-10 数据集的训练和评估
- 实现了数据增强和预处理流程
- 提供了模型训练、验证和测试的完整流程
查看详情
- 实现状态: ✅ 已完成
- 发表时间: 2017 年 12 月
- 主要功能: 机器翻译
- 数据集: Multi30k
- 简要说明: Transformer 模型通过其创新的"自注意力机制"(Self-Attention),完全摒弃了传统的循环和卷积结构,允许模型在处理序列时同时关注所有位置并直接计算它们之间的全局依赖关系,实现了高效的并行计算,是自然语言处理(NLP)领域一个革命性里程碑。
- 完成功能:
- 实现了完整的 Transformer 编码器-解码器架构
- 实现了多头自注意力机制和正弦位置编码
- 支持 Multi30k 数据集的训练和评估
- 实现了基于贪婪解码策略的自回归输出
查看详情
- 实现状态: ✅ 已完成
- 发表时间: 2020 年 5 月
- 主要功能: 端到端目标检测
- 数据集: Pascal VOC 2012
- 简要说明: DETR 基于 Transformer 架构,首次实现了端到端的目标检测,摒弃了传统检测器的人工设计组件。通过匈牙利算法进行二分图匹配,并利用全局建模能力有效捕获目标间关系,开创了检测任务的新范式。
- 完成功能:
- 实现了完整的DETR模型架构
- 支持Pascal VOC 2012数据集的训练和评估
- 实现了目标检测的可视化推理流程
- 在VOC 2012 val数据集上达到了32.3 mAP的性能
查看详情
- 实现状态: ✅ 已完成
- 发表时间: 2021 年 2 月
- 主要功能: 跨模态图像-文本理解
- 数据集: Flickr30k
- 简要说明: CLIP 采用对比学习范式和双塔架构设计,通过大规模图像-文本对训练获得强大的零样本迁移能力。其开放词汇表推理和优秀的跨模态对齐能力,为视觉-语言理解开辟了新方向。
- 完成功能:
- 实现了基于 Vision Transformer 和 Text Transformer 的 CLIP 模型架构
- 支持 Flickr30k 数据集的训练和评估
- 实现了单个图像 -- 5 个文本的对比损失
查看详情
- 实现状态: 🚧 计划中
- 发表时间: 2021 年 12 月
- 主要功能: 统一的图像分割
- 数据集: 待定(COCO, ADE20K, Cityscapes)
- 简要说明: Mask2Former 提出统一的掩码分类框架,通过高效的掩码注意力机制和多尺度可变形注意力,成功实现了语义分割、实例分割和全景分割等多种分割任务的统一处理。
- 当前进度: 暂无
查看详情
- 实现状态: ⚙️ 进行中
- 发表时间: 2023 年 4 月
- 主要功能: 通用图像分割
- 数据集: Pascal VOC 2012
- 简要说明: SAM 是一个强大的通用分割基础模型,支持点击、框、文本等多种交互式提示,具备出色的零样本泛化能力,能够实时生成高质量的分割掩码。
- 当前进度: 暂无
- BLIP/BLIP-2: 图像-文本多模态理解与生成
- LLaVA: 大型语言-视觉助手模型
- Flamingo: 少样本视觉语言学习
- ImageBind: 多模态嵌入统一
- CoCa: 对比性跨模态预训练
- GLIP: 基于短语的目标检测
- Grounding DINO: 开放词汇目标检测
- Referring Expression Segmentation: 指代表达分割
- Visual Grounding: 视觉定位任务
- MDETR: 端到端调制检测器
- DETR/Deformable DETR: 端到端目标检测
- Mask R-CNN/Mask2Former: 实例分割
- SAM (Segment Anything Model): 通用分割模型
- YOLO 系列 (v5-v8): 实时目标检测
- OneFormer: 统一图像分割
- 知识蒸馏 (Knowledge Distillation): 模型压缩与知识传递
- 持续学习 (Continual Learning): 防止灾难性遗忘
- 少样本学习 (Few-shot Learning): 从少量样本中学习
- 对比学习 (Contrastive Learning): 自监督表示学习
- 元学习 (Meta-Learning): 学会如何学习
torch.distributed(分布式训练)torch.jit(JIT 编译)torch.quantization(模型量化)torch.fx(图形转换)torch.compile(编译优化)
-
克隆仓库:
git clone https://github.com/liuxiang09/Pytorch.git cd Pytorch -
创建 Conda 环境 (推荐):
conda create -n pytorch_env python=3.10 conda activate pytorch_env
-
安装依赖:
pip install -r requirements.txt
-
安装 PyTorch (根据你的 CUDA 版本): 请访问 PyTorch 官网 获取适合你系统和 CUDA 版本的安装命令。 例如 (CUDA 11.8):
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118
python models/CLIP/train.py --trainpython models/CLIP/train.py --evalpython models/CLIP/inference.py欢迎任何形式的贡献,包括但不限于:
- 提出 Bug
- 提交 Pull Request (优化代码、新增模型、改进文档等)
- 分享学习心得和资源
本项目采用 MIT License 许可。
- GitHub Issues: 提交问题或建议
- Email: liuxiang09192021@163.com
