mmclassification-安装使用(一)
目录
1、环境安装
2、训练测试
2.1、测试
2.2、训练
3、使用工具
3.1、计算floats
3.2、发布模型
更新记录:
2020.12.15:更新最新版pytorch安装,更新因项目文件命名修改引起的代码示例无法运行问题,补充更加详细的说明。
项目地址:https://github.com/open-mmlab/mmclassification
1、环境安装
python 3.7+
mmcv 1.2.1
opencv-contrib-python 4.3.0.36
opencv-python 4.3.0.36
Pillow 7.2.0
pycocotools 2.0.1
torch 1.7.0
torchvision 0.8.1
cuda 11.0
conda install pytorch torchvision cudatoolkit=11.0 -c pytorch # 依据官方最新版本安装
git clone https://github.com/open-mmlab/mmclassification.git
cd mmclassification
pip install -e . # or "python setup.py develop"
照上述说明,mmclassification是在dev模式下安装的,对代码进行的任何本地修改都将生效,而无需重新安装它(除非您提交了一些提交并希望更新版本号)。
2、训练测试
2.1、测试
测试一个数据集:
1)single GPU;
2)single node multiple GPU;
3)multiple node;
测试实例:
# single-gpu testing
python tools/test.py ${CONFIG_FILE} ${CHECKPOINT_FILE} [--out ${RESULT_FILE}]# multi-gpu testing
./tools/dist_test.sh ${CONFIG_FILE} ${CHECKPOINT_FILE} ${GPU_NUM} [--out ${RESULT_FILE}]
测试:
测试时,需要提供config文件及权重文件。首先,在工程目录下configs,任选一个,以cifar10下resnet50_b16x8.py为例。
在项目端,model_zoo页面,下载与之对应的模型文件,这里对应文件为CIFAR10下的ResNet-50-b16x8模型,点击model进行下载。下载后,在工程目录新建checkpoints文件夹,将模型放入。https://github.com/open-mmlab/mmclassification/blob/master/docs/model_zoo.md
python tools/test.py configs/cifar10/resnet50.py checkpoints/resnet50_batch256_20200708.pth
运行该脚本会自动下载模型及数据。自带的下载方式较慢,可手动下载后放对应目录。
测试结果如下:
2.2、训练
支持分布式、非分布式训练,分别使用MMDistributedDataParallel和MMDataParallel实现。所有输出都会在配置的work_dir里。
默认在每个epoch迭代进行进行验证集测试,改变验证频率可设置interval:
evaluation = dict(interval=12) # This evaluate the model per 12 epoch.
单GPU训练:
python tools/train.py ${CONFIG_FILE} [optional arguments]
实例:
python tools/train.py configs/cifar10/resnet50_b16x8.py
多GPU训练:
./tools/dist_train.sh ${CONFIG_FILE} ${GPU_NUM} [optional arguments]
可选参数为:
--no-validate:不验证。
--work-dir:覆盖配置文件中指定的工作目录。
--resume-from:从先前的检查点文件恢复。
resume-from与load-from之间的差异:
resume-from同时加载模型权重和优化器状态,并且epoch 也从指定的检查点继承,它通常用于恢复意外中断的训练过程。
load-from仅加载模型权重,并且训练时期从0开始。通常用于微调。
实例:
python tools/train.py configs/cifar10/resnet50_b16x8.py --resume-from=work_dirs/resnet50/epoch_14.pth
多机器训练:
[GPUS=${GPUS}] ./tools/slurm_train.sh ${PARTITION} ${JOB_NAME} ${CONFIG_FILE} ${WORK_DIR}
在一个机子上运行多任务训练:
CUDA_VISIBLE_DEVICES=0,1,2,3 PORT=29500 ./tools/dist_train.sh ${CONFIG_FILE} 4
CUDA_VISIBLE_DEVICES=4,5,6,7 PORT=29501 ./tools/dist_train.sh ${CONFIG_FILE} 4
3、使用工具
3.1、计算floats
python tools/get_flops.py ${CONFIG_FILE} [--shape ${INPUT_SHAPE}]
结果如下:
==============================
Input shape: (3, 224, 224)
Flops: 4.12 GFLOPs
Params: 25.56 M
==============================
1)FLOP与输入形状有关,而参数与输入形状无关。默认输入形状为(1、3、224、224);
2)像GN和自定义运算符一样,某些运算符不计入FLOP中。mmcv.cnn.get_model_complexity_info()有关详情,请参阅。
3.2、发布模型
在将模型上载到AWS之前,您可能需要:
1)将模型权重转换为CPU张量;
2)删除优化器状态;
3)计算检查点文件的哈希并将哈希ID附加到文件名中。
python tools/publish_model.py ${INPUT_FILENAME} ${OUTPUT_FILENAME}
实例:
python tools/publish_model.py work_dirs/resnet50/latest.pth imagenet_resnet50_20200708.pth
最后输出文件将会是:imagenet_resnet50_20200708-{hash id}.pth。
传送门:mmclassification项目阅读系列文章目录
教程文档翻译:
mmclassification-安装使用(一)
mmclassification-模型微调(二)
mmclassification-添加新数据集(三)
mmclassification-自定义数据管道(四)
mmclassification-添加新模块(五)
mmclassification-安装使用(一)相关推荐
- mmclassification安装与调试
MMClassification 是一款基于 PyTorch 的开源图像分类工具箱,是 OpenMMLab 项目的成员之一 主分支代码目前支持 PyTorch 1.5 以上的版本. MMClassif ...
- 【图像分类】如何使用 mmclassification 训练自己的分类模型
文章目录 一.数据准备 二.模型修改 三.模型训练 四.模型效果可视化 五.如何分别计算每个类别的精确率和召回率 MMclassification 是一个分类工具库,这篇文章是简单记录一下如何用该工具 ...
- 在MMClassification中使用Swin-Transformer开始一个分类任务
最近, Swin Transformer 当选 ICCV2021的 Best paper.作为基础模型,其在分类.检测与分割等下游任务上都取得了SOTA的结果.MMClassification(MMC ...
- 3 北京超算云计算平台深度学习环境配置笔记
点击链接https://cloud.blsc.cn/进入网页版或下载客户端,使用北京超级云计算中心账号登陆 环境信息加载总结 #!/bin/bash #加载模块 module load anacond ...
- mmdetection 使用笔记 01: 安装与简单的推理demo
mmdetection 使用笔记 01: 安装与简单的推理demo mmdetection是来自商汤和港中文联合实验室openmmlab推出的目标检测工具包,与其同系列的还有基础视觉包mmcv,图像分 ...
- mmclassification
mmclassification 一.MMCLS项目 0.下载链接 Torch安装方法 - CPU : pip install torch -i https://download.pytorch.or ...
- 【目标检测】MMDetection的安装与基础使用
前言 MMDetection是商汤和港中文大学针对目标检测任务推出的一个开源工具包,统一标准化了很多前沿模型,为研究者复现代码提供了便利.本篇就来尝试安装一下MMDetection并简单跑一下官方的示 ...
- windows下安装mmdetection
mmdetection是个非常好用的目标检测工具包,提供了大量的预训练模型,服务器上开发实在是太麻烦了,所以我尝试在我的windows电脑上安装了mmdetection,最终成功跑出了demo,如下: ...
- MMclassification 教程(三)
~~已经很努力的调格式了,若还不满意,移步读书笔记或GitHub~~喜欢的话,希望大大点个赞~~ Shawn的学习笔记Descriptionhttps://study.chenkequan.cn/#/ ...
- linux环境下nacos的安装+启动,阿里云服务器安装nacos
nacos安装+启动(linux环境): 基础:安装java环境 官网下载压缩包:如 nacos-server-1.2.1.tar.gz 放在自定义目录下 # 解压 tar -xvf nacos-se ...
最新文章
- 论文排版之公式居中、编号右对齐
- 一份不大的救命文档,一场时间与生死的接力
- 移植开源QT软件-SameGame
- 一个迄今为止最快的并发键值存储库FASTER诞生
- mongoose 批量修改字段_常用SQL系列之(五):多表和禁止插入、批量与特殊更新等...
- 使用spring-data-jpa实现简单的两表联查
- ftp服务器不能读取文件内容_使用file_get_contents()函数读取文件内容
- 经典机器学习系列(六)【集成学习】
- mysql允许远程访问的用户
- JavaWeb出现404一个很隐蔽的原因
- linux 项目文件管理,VS2017开发Linux程序之管理已有的makefile工程
- javascript释放对象_一文深入理解JavaScript如何运作
- linux内核奇遇记之md源代码解读之十raid5数据流之同步数据流程
- 又是一年“剁手”时,AI一下更优惠?
- AutoCAD二次开发1-环境配置
- python pandas按照行数切分文件
- 2017年一季度工作回顾及感悟
- 共享汽车违章难处理 车企用定位模块来解决
- tensorflow 如何计算向量余弦相似 cosine similarity
- 设计模式中的撩妹神技--下篇