Skip to content

zhangys11/pytorch

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

This is a fork from datawhalechina/thorough-pytorch. This fork is maintained by Dr. Zhang. Used for teaching purpose only.

notebook 学习次序

  • 第一章:预备知识Numpy
    • Numpy Basics.ipynb
  • 第二章:PyTorch基础知识
    • PyTorch基础知识.ipynb - 张量及其运算, 自动求导
  • 第三章:PyTorch机器学习初步
    • 数据读取.ipynb - DataSet, DataLoader类的构造
    • linear regression.ipynb - 线性回归,梯度下降
    • logistic regression.ipynb - 逻辑回归
    • MLP.ipynb - MLP神经网络
    • CNN.ipynb - 卷积神经网络
    • CNN_regularization.ipynb - 正则化
    • CNN_Early Stop.ipynb - 验证集,early Stop
    • LeNet.ipynb, AlexNet.ipyneb - 其他经典CNN
  • 第四章:PyTorch基础实战
    • 图像分类
      • Image Classification.ipynb - 常见的图像分类深度学习模型
      • FashionMNIST.ipynb - 图像分类案例-FashionMNIST数据集
      • Fruits_Vegetables.ipynb - 图像分类案例-kaggle果蔬数据集
      • Finetuning.ipynb - 迁移学习,模型微调
      • Finetuning-fruit.ipynb - 迁移学习案例-水果新鲜度数据集
    • 图像分割
      • Image Segmentation.ipynb - 常见的图像分割深度学习模型
    • 表格数据
      • tabnet.ipynb
    • 样本生成
      • text-to-image

深入浅出PyTorch

Important

在线阅读地址 | 配套视频教程 | 智海(国家级AI科教平台)

请注意:在线文档更新落后于主仓库更新,建议看source文件夹下的markdown文件

一、项目初衷

PyTorch是利用深度学习进行数据科学研究的重要工具,在灵活性、可读性和性能上都具备相当的优势,近年来已成为学术界实现深度学习算法最常用的框架。

考虑到PyTorch的学习兼具理论储备和动手训练,两手都要抓两手都要硬的特点,我们开发了《深入浅出PyTorch》课程,期望以组队学习的形式,帮助大家从入门到熟练掌握PyTorch工具,进而实现自己的深度学习算法。

我们的愿景是:通过组队学习,大家能够掌握由浅入深地PyTorch的基本知识和内容,经过自己的动手实践加深操作的熟练度。同时通过项目实战,充分锻炼编程能力,掌握PyTorch进行深度学习的基本流程,提升解决实际问题的能力。

学习的先修要求是,会使用Python编程,了解包括神经网络在内的机器学习算法,勤于动手实践。

《深入浅出PyTorch》是一个系列,一共有三个部分。已经上线的是本系列的第一、二部分,后续会不断更新《深入浅出PyTorch》(下),给出更贴合实际应用的实战案例。

二、内容简介

  • 第零章:前置知识(选学)
    • 人工智能简史
    • 相关评价指标
    • 常用包的学习
    • Jupyter相关操作
  • 第一章:PyTorch的简介和安装
    • PyTorch简介
    • PyTorch的安装
    • PyTorch相关资源简介
  • 第二章:PyTorch基础知识
    • 张量及其运算
    • 自动求导简介
    • 并行计算、CUDA和cuDNN简介
  • 第三章:PyTorch的主要组成模块
    • 思考:完成一套深度学习流程需要哪些关键环节
    • 基本配置
    • 数据读入
    • 模型构建
    • 损失函数
    • 优化器
    • 训练和评估
    • 可视化
  • 第四章:PyTorch基础实战
    • 基础实战——Fashion-MNIST时装分类
    • 基础实战——果蔬分类实战(notebook)
  • 第五章:PyTorch模型定义
    • 模型定义方式
    • 利用模型块快速搭建复杂网络
    • 模型修改
    • 模型保存与读取
  • 第六章:PyTorch进阶训练技巧
    • 自定义损失函数
    • 动态调整学习率
    • 模型微调-torchvision
    • 模型微调-timm
    • 半精度训练
    • 数据扩充
    • 超参数的修改及保存
    • PyTorch模型定义与进阶训练技巧
  • 第七章:PyTorch可视化
    • 可视化网络结构
    • 可视化CNN卷积层
    • 使用TensorBoard可视化训练过程
    • 使用wandb可视化训练过程
  • 第八章:PyTorch生态简介
    • 简介
    • 图像—torchvision
    • 视频—PyTorchVideo
    • 文本—torchtext
    • 音频-torchaudio
  • 第九章:模型部署
    • 使用ONNX进行部署并推理
  • 第十章:常见网络代码的解读(推进中)
    • 计算机视觉
      • 图像分类
        • ResNet源码解读
        • Swin Transformer源码解读
        • Vision Transformer源码解读
        • RNN源码解读
        • LSTM源码解读及其实战
      • 目标检测
        • YOLO系列解读(与MMYOLO合作)
      • 图像分割
    • 自然语言处理
      • RNN源码解读
    • 音频处理
    • 视频处理
    • 其他

三、人员安排

成员  个人简介 个人主页
牛志康 DataWhale成员,西安电子科技大学本科生 [知乎][个人主页]
李嘉骐 DataWhale成员,清华大学研究生 [知乎]
刘洋 Datawhale成员,中国科学院数学与系统科学研究所研究生 [知乎]
陈安东 DataWhale成员,哈尔滨工业大学研究生 [个人主页]

教程贡献情况(已上线课程内容):

李嘉骐:第三章;第四章;第五章;第六章;第七章;第八章;内容整合

牛志康:第一章;第三章;第六章;第七章;第八章,第九章,第十章;文档部署

刘洋:第二章;第三章

陈安东:第二章;第三章;第七章

四、 课程编排与配套视频

部分章节直播讲解请观看B站回放(持续更新):https://www.bilibili.com/video/BV1L44y1472Z

  • 课程编排: 深入浅出PyTorch分为三个阶段:PyTorch深度学习基础知识、PyTorch进阶操作、PyTorch案例分析。

  • 使用方法:

    我们的课程内容都以markdown格式或jupyter notebook的形式保存在本仓库内。除了多看加深课程内容的理解外,最重要的还是动手练习、练习、练习

  • 组队学习安排:

    第一部分:第一章到第四章,学习周期:10天;

    第二部分:第五章到第八章,学习周期:11天

五、关于贡献

本项目使用Forking工作流,具体参考atlassian文档大致步骤如下:

  1. 在GitHub上Fork本仓库
  2. Clone Fork后的个人仓库
  3. 设置upstream仓库地址,并禁用push
  4. 使用分支开发,课程分支名为lecture{#NO}#NO保持两位,如lecture07,对应课程目录
  5. PR之前保持与原始仓库的同步,之后发起PR请求

命令示例:

# fork
# clone
git clone git@github.com:USERNAME/thorough-pytorch.git
# set upstream
git remote add upstream git@github.com:datawhalechina/thorough-pytorch.git
# disable upstream push
git remote set-url --push upstream DISABLE
# verify
git remote -v
# some sample output:
# origin	git@github.com:NoFish-528/thorough-pytorch.git (fetch)
# origin	git@github.com:NoFish-528/thorough-pytorch.git (push)
# upstream	git@github.com:datawhalechina/thorough-pytorch.git (fetch)
# upstream	DISABLE (push)
# do your work
git checkout -b lecture07
# edit and commit and push your changes
git push -u origin lecture07
# keep your fork up to date
## fetch upstream main and merge with forked main branch
git fetch upstream
git checkout main
git merge upstream/main
## rebase brach and force push
git checkout lecture07
git rebase main
git push -f

Commit Message

提交信息使用如下格式:<type>: <short summary>

<type>: <short summary>
  │            │
  │            └─⫸ Summary in present tense. Not capitalized. No period at the end.
  │
  └─⫸ Commit Type: [docs #NO]:others

others包括非课程相关的改动,如本README.md中的变动,.gitignore的调整等。

六、更新计划

内容 更新时间 内容
apex apex的简介和使用
模型部署 Flask部署PyTorch模型
TorchScript TorchScript
并行训练 并行训练
模型预训练 - torchhub torchhub的简介和使用方法
目标检测 - SSD SSD的简介和实现
目标检测 - RCNN系列 Fast-RCNN & Mask-RCNN
目标检测 - DETR DETR的实现
图像分类 - GoogLeNet GoogLeNet的介绍与实现
图像分类 - MobileNet系列 MobileNet系列介绍与实现
图像分类 - GhostNet GhostNet代码讲解
生成式对抗网络 - 生成手写数字实战 生成数字并可视化
生成式对抗网络 - DCGAN
风格迁移 - StyleGAN
生成网络 - VAE
图像分割 Deeplab系列 Deeplab系列代码讲解
自然语言处理 LSTM LSTM情感分析实战
自然语言处理 Transformer
自然语言处理 BERT
视频 待定
音频 待定
自定义CUDA扩展和算子

七、鸣谢与反馈

  • 非常感谢DataWhale成员 叶前坤 @PureBuckwheat 和 胡锐锋 @Relph1119 对文档的细致校对!
  • 如果有任何想法可以联系我们DataWhale也欢迎大家多多提出issue。
  • 特别感谢以下为教程做出贡献的同学!并特别感谢MMYOLO的贡献者们!

Made with contrib.rocks.

八、关注我们

Datawhale是一个专注AI领域的开源组织,以“for the learner,和学习者一起成长”为愿景,构建对学习者最有价值的开源学习社区。关注我们,一起学习成长。

LICENSE

知识共享许可协议
本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。

About

PyTorch入门教程. This fork is maintained by Dr. Zhang. Used for teaching purpose only.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Jupyter Notebook 100.0%