OpenMMLab实战营第三课 图像分类代码实战与超算平台介绍
Pytorch简单代码结构展示
1 | # https://pytorch.org/tutorials/beginner/basics/quickstart_tutorial.html |
OpenMMLab里是怎么做的
OpenMMLab 项目中的重要概念--配置文件 比pytorch更简单的的方式 通过它OpenMMLab可以还原回pytorch代码
深度学习模型的训练涉及几个方面:
- 模型结构模型 有几层、每层多少通道数等等
- 数据集 用什么数据训练模型:数据集划分、数据文件路径、数据增强策略等等
- 训练策略 梯度下降算法、学习率参数、batch size训练总轮次、学习率变化策略等等
- 运行时 GPU、分布式环境配置等等
- 一些辅助功能 如打印日志、定时保存checkpoint等等
一些问题和回答整理
只记录了一些我感兴趣的问题和回答(并不是原话经过整理)
问题: 输入图片的尺寸可以不固定吗?
回答: 对于早期的存在全链接层的卷积神经网络必须 输入图像是固定的,而后续一些下经网络(如ResNet)用了全局平均池化 ,代替了全连接层所以不限制图像尺寸。
问题: 神经网络也需要像人一样使用多种感官感知吗?
回答: 为了更好感知信息神经网络确实需要这样的策略 如多模态学习。
问题: 出现分类错误 如何修改错误?
回答: 可以通过可解释学习 来了解 程序哪里出了错。
超算平台应用(北京超级云计算中心)
登录官网下载客户端
利用云桌面平台
先用ssh 选择合适的分区(N30分区)
界面目录 cd run 分配了300G内存
查看模块
module avail
搭建环境
创建环境
module load anaconda/2021.05
conda create --name mmclassification python=3.8
激活环境
source activate mmclassification
加载cuda/11.1
module load cuda/11.1
安装pytorch 通过pip安装CUDA不能低于 11.1 不推荐用conda装
1 | pip install torch==1.10.0+cu111 torchvision==0.11.0+cu111 torchaudio==0.10.0 -f https://download.pytorch.org/whl/torch_stable.html |
安装 mmcv-full 模块,mmcv-full 模块安装时候需要注意 torch 和 cuda 版本。参考这里
1 | pip install mmcv-full==1.7.0 -f |
安装 openmmlab/mmclassification 模块,建议通过下载编译的方式进行安装;安装该模块需要 gcc ≥ 5,使用 module 加载一个 gcc ,例如 module load gcc/7.3
1 | 加载 gcc/7.3 模块 |
总结环境信息,可以使用 module list 查看当前环境中加载的依赖模块,如下:
module list
准备 shell 脚本,将环境信息预先保存在脚本中。
1 | !/bin/bash |
使用快传传输本地数据集到超算 创建data目录存放
划分数据集
自己写的脚本文件
1 | import os |
MMCls 配置文件
mkdir configs/resnet18
cp ~/run/opnemmlab/resnet18_b32_flower.py ./configs/resnet18/
按要求修改配置文件
提交计算
准备作业脚本
取消计算
scancel 279704 # 279704 为作业ID
查看GPU利用率
在提交作业之后,使用 parajobs 或 squeue 查看作业的第八列 NODELIST(REASON)对于运行作业(R状态)显示作业使用的节点列表
squeue
查看到使用的节点列表之后,使用 ssh [节点] 进入GPU环境,执行 nvidia-smi 可查看 GPU 利用率。
ssh g0004 #g0004节点
nvidia-smi