目录

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-安装使用(一)相关推荐

  1. mmclassification安装与调试

    MMClassification 是一款基于 PyTorch 的开源图像分类工具箱,是 OpenMMLab 项目的成员之一 主分支代码目前支持 PyTorch 1.5 以上的版本. MMClassif ...

  2. 【图像分类】如何使用 mmclassification 训练自己的分类模型

    文章目录 一.数据准备 二.模型修改 三.模型训练 四.模型效果可视化 五.如何分别计算每个类别的精确率和召回率 MMclassification 是一个分类工具库,这篇文章是简单记录一下如何用该工具 ...

  3. 在MMClassification中使用Swin-Transformer开始一个分类任务

    最近, Swin Transformer 当选 ICCV2021的 Best paper.作为基础模型,其在分类.检测与分割等下游任务上都取得了SOTA的结果.MMClassification(MMC ...

  4. 3 北京超算云计算平台深度学习环境配置笔记

    点击链接https://cloud.blsc.cn/进入网页版或下载客户端,使用北京超级云计算中心账号登陆 环境信息加载总结 #!/bin/bash #加载模块 module load anacond ...

  5. mmdetection 使用笔记 01: 安装与简单的推理demo

    mmdetection 使用笔记 01: 安装与简单的推理demo mmdetection是来自商汤和港中文联合实验室openmmlab推出的目标检测工具包,与其同系列的还有基础视觉包mmcv,图像分 ...

  6. mmclassification

    mmclassification 一.MMCLS项目 0.下载链接 Torch安装方法 - CPU : pip install torch -i https://download.pytorch.or ...

  7. 【目标检测】MMDetection的安装与基础使用

    前言 MMDetection是商汤和港中文大学针对目标检测任务推出的一个开源工具包,统一标准化了很多前沿模型,为研究者复现代码提供了便利.本篇就来尝试安装一下MMDetection并简单跑一下官方的示 ...

  8. windows下安装mmdetection

    mmdetection是个非常好用的目标检测工具包,提供了大量的预训练模型,服务器上开发实在是太麻烦了,所以我尝试在我的windows电脑上安装了mmdetection,最终成功跑出了demo,如下: ...

  9. MMclassification 教程(三)

    ~~已经很努力的调格式了,若还不满意,移步读书笔记或GitHub~~喜欢的话,希望大大点个赞~~ Shawn的学习笔记Descriptionhttps://study.chenkequan.cn/#/ ...

  10. linux环境下nacos的安装+启动,阿里云服务器安装nacos

    nacos安装+启动(linux环境): 基础:安装java环境 官网下载压缩包:如 nacos-server-1.2.1.tar.gz 放在自定义目录下 # 解压 tar -xvf nacos-se ...

最新文章

  1. 论文排版之公式居中、编号右对齐
  2. 一份不大的救命文档,一场时间与生死的接力
  3. 移植开源QT软件-SameGame
  4. 一个迄今为止最快的并发键值存储库FASTER诞生
  5. mongoose 批量修改字段_常用SQL系列之(五):多表和禁止插入、批量与特殊更新等...
  6. 使用spring-data-jpa实现简单的两表联查
  7. ftp服务器不能读取文件内容_使用file_get_contents()函数读取文件内容
  8. 经典机器学习系列(六)【集成学习】
  9. mysql允许远程访问的用户
  10. JavaWeb出现404一个很隐蔽的原因
  11. linux 项目文件管理,VS2017开发Linux程序之管理已有的makefile工程
  12. javascript释放对象_一文深入理解JavaScript如何运作
  13. linux内核奇遇记之md源代码解读之十raid5数据流之同步数据流程
  14. 又是一年“剁手”时,AI一下更优惠?
  15. AutoCAD二次开发1-环境配置
  16. python pandas按照行数切分文件
  17. 2017年一季度工作回顾及感悟
  18. 共享汽车违章难处理 车企用定位模块来解决
  19. tensorflow 如何计算向量余弦相似 cosine similarity
  20. 设计模式中的撩妹神技--下篇

热门文章

  1. 噪声系数测试之准确性(三)
  2. 树莓派zero w 图像传输
  3. 《淘宝网》软件六大属性分析
  4. windows server2012 安装 postgresql安装失败提示getlocales的解决方法 亲测有效
  5. 人月神话(4)系统设计
  6. R语言分层抽样(strata函数)
  7. 老中医一生心得,看了对你的下半生大有好处
  8. java akka demo_AKKA文档(java版)—角色
  9. 互斥锁、自旋锁、读写锁、悲观锁、乐观锁的应用场景
  10. [GRE] 填空经典1290题 错题(二)