作为Meta开源的深度学习框架,PyTorch在近几年的发展中被越来越多的人使用,不论是学术界还是工业界、学生还是上班族,PyTorch被越来越多的人追捧。比于TensorFlow的静态计算图,PyTorch的动态图可以带来更大的灵活性,提供了各种张量操作并通过自动求导可以自动进行梯度计算,方便构建各种神经网络模型,同时支持使用GPU/TPU加速计算。本仓库提供了使用PyTorch进行深度学习的最佳实践,从深度学习环境搭建与张量基础入手,从0到1自由构筑和训练神经网络,通过优化网络保障高分结果和运行效率,同时着力于深度架构落地实践,最后通过一线CV(和NLP)企业级应用提升实战能力。项目以Jupyter Notebook为主,兼顾了理论基础和最佳实现,而不只是空洞的代码,适合小白入门;通过若干案例和大项目巩固实战和项目迁移能力;并提供多种优化手段助力论文和比赛提分。
所有代码都是在以下环境中编写和调试:
- Python 3.9.13
- PyTorch 1.11.0
- CudaToolkit 1.11.1
- CUDA 1.11
- Conda 22.11.1
完整的环境依赖可查看requirements.txt,只需要安装主要的库即可:
conda create -n handsondlbase python=3.9.10 -y
conda install pytorch==1.11.0 cudatoolkit=11.1 -c pytorch -c conda-forge -y
conda install pandas matplotlib seaborn jupyter scikit-learn tensorboard -y
conda install torchvision=0.12.0 -c pytorch --no-deps -y
pip install tqdm opencv-python
如果不需要GPU版,也可以不安装cudatoolkit、直接安装PyTorch。
- 深度学习环境和PyTorch基础
- 从0搭建神经网络
- 神经网络的训练和预测
- 神经网络训练的稳定性与优化
- 深度视觉与卷积神经网络
一些实际运行的效果示例如下:
-
SSE损失的3维图像
-
导数与梯度
-
TensorBoard可视化示例
-
Sigmoid激活函数堆叠效应
-
存在梯度消失的模型的各层梯度小提琴图
-
带BN的模型的学习率的U型学习曲线
-
OpenCV使用拉普拉斯算子和索贝尔算子进行边缘检测
欢迎您通过Github Issues来提交问题、报告与建议:
- 个人主页:https://github.com/corleytd
- 个人邮箱:[email protected]