代码练习需要使用谷歌的 Colab,它是一个 Jupyter 笔记本环境,已经默认安装好 pytorch,不需要进行任何设置就可以使用,并且完全在云端运行。使用方法可以参考 Rogan 的博客:https://www.cnblogs.com/lfri/p/10471852.html 国内目前无法访问 colab,可以安装 Ghelper: http://googlehelper.net/
这部分内容包括:理解图像类型,进行一些基本的图像分割操作。代码在一个 JupyterNotebook 里面,地址为:https://github.com/LilWingXYZ/Deep-Learning-Pytorch-Code-Practice/blob/main/01_Image_Processing.ipynb
基础练习部分包括 pytorch 基础操作,链接:https://github.com/LilWingXYZ/Deep-Learning-Pytorch-Code-Practice/blob/main/02_Pytorch_Basic.ipynb
代码链接:https://github.com/LilWingXYZ/Deep-Learning-Pytorch-Code-Practice/blob/main/03_Spiral_Classification.ipynb
备注:详细说明可参考 https://atcold.github.io/pytorch-Deep-Learning/zh/week02/02-3/ 中英文字幕的视频讲解在B站:https://www.bilibili.com/video/BV1gV411o7AD?p=4
代码链接:https://github.com/LilWingXYZ/Deep-Learning-Pytorch-Code-Practice/blob/main/04_Regression.ipynb
备注: 详细说明可参考 https://atcold.github.io/pytorch-Deep-Learning/zh/week02/02-3/ 中英文字幕的视频讲解在B站:https://www.bilibili.com/video/BV1gV411o7AD?p=4
B站链接:https://www.bilibili.com/video/BV1o7411f7UM
主要内容包括:残差学习的基本原理、恒等映射和Shotcut、使用 pytorch 实现 ResNet152。
构建简单的CNN对 mnist 数据集进行分类。同时,还会在实验中学习池化与卷积操作的基本作用。
链接:https://github.com/LilWingXYZ/Deep-Learning-Pytorch-Code-Practice/blob/main/05_01_ConvNet.ipynb
要求: 把代码输入 colab,在线运行观察效果
使用 CNN 对 CIFAR10 数据集进行分类
链接:https://github.com/LilWingXYZ/Deep-Learning-Pytorch-Code-Practice/blob/main/05_02_CNN_CIFAR10.ipynb
要求: 把代码输入 colab,在线运行观察效果
链接:https://github.com/LilWingXYZ/Deep-Learning-Pytorch-Code-Practice/blob/main/05_03_VGG_CIFAR10.ipynb
要求: 把代码输入 colab,在线运行观察效果
主要内容包括: 迁移学习、图像分类、VGG模型
notebook链接:https://github.com/LilWingXYZ/Deep-Learning-Pytorch-Code-Practice/blob/main/05_04_Transfer_VGG_for_dogs_vs_cats.ipynb
这部分为 Kaggle 于 2013 年举办的猫狗大战竞赛,使用在 ImageNet 上预训练的 VGG 网络进行测试。因为原网络的分类结果是1000类,所以这里进行迁移学习,对原网络进行 fine-tune (即固定前面若干层,作为特征提取器,只重新训练最后两层)。
仔细研读AI研习社猫狗大战赛题的要求:https://god.yanxishe.com/41 (目前比赛已经结束,但仍可做为练习赛每天提交测试结果)
下载比赛的测试集(包含2000张图片),利用fine-tune的VGG模型进行测试,按照比赛规定的格式输出,上传结果评测(练习赛每天仅可评测5次)。
简要阅读谷歌2017年的论文《MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications》,同时,阅读知乎文章https://zhuanlan.zhihu.com/p/80041030,体会 Depthwise 卷积 和 Pointwise 卷积。同时,阅读代码:https://github.com/LilWingXYZ/Deep-Learning-Pytorch-Code-Practice/blob/main/MobileNetV1_CIFAR10.ipynb
简要阅读谷歌在CVPR2018上的论文《MobileNetV2: Inverted Residuals and Linear Bottlenecks》,体会第二个版本的改进。阅读代码:https://github.com/LilWingXYZ/Deep-Learning-Pytorch-Code-Practice/blob/main/MobileNetV2_CIFAR10.ipynb
阅读论文《HybridSN: Exploring 3-D–2-DCNN Feature Hierarchy for Hyperspectral Image Classification》,思考3D卷积和2D卷积的区别。阅读代码:https://github.com/LilWingXYZ/Deep-Learning-Pytorch-Code-Practice/blob/main/HybridSN_GRSL2020.ipynb
阅读论文CVPR2018的论文《Squeeze-and-Excitation Networks》,国内自动驾驶创业公司 Momenta 在 ImageNet 2017 挑战赛中夺冠,网络架构为 SENet,论文作者为 Momenta 高级研发工程师胡杰。该网络通过学习的方式获取每个特征通道的重要程度,然后依照这个重要程度去提升有用的特征并抑制对当前任务用处不大的特征。
代码实现:把SENet模块添加到 HybridSN 后面两个2D卷积中,观察分类的性能是否会继续提升。代码链接:https://github.com/LilWingXYZ/Deep-Learning-Pytorch-Code-Practice/blob/main/HybridSN_GRSL2020%EF%BC%88add%20SENet%EF%BC%89.py
代码:https://github.com/LilWingXYZ/Deep-Learning-Pytorch-Code-Practice/blob/main/08_GAN_double_moon.ipynb
代码:https://github.com/LilWingXYZ/Deep-Learning-Pytorch-Code-Practice/blob/main/09_CGAN_DCGAN_mnist.ipynb