欢迎大家关注笔者,你的关注是我持续更博的最大动力

原创文章,转载告知,盗版必究

mmdetection2.3.0版本安装过程,以及训练、测试、可视化等(亲测好用,很顺利)

文章目录:

  • 1 运行mmdetection2.3.0版本报错
    • 1.1 错误解决历程
    • 1.2 最终的解决方法
  • 2 mmdetection2.3.0 安装过程
    • 2.1 创建虚拟环境
    • 2.2 安装torch和torchvison
    • 2.3 安装mmcv
    • 2.4 下载mmdetection
    • 2.5 安装编译mmdet
    • 2.6 测试环境是否可用
    • 2.7 单GPU训练
    • 2.8 多GPU训练
    • 2.9 再测试集上进行测试
    • 2.10 可视化训练的loss结果
    • 2.11 计算训练的时间
    • 2.12 更改训练模型保存的周期 和 从预训练模型恢复训练

mmdetection 下载20200805最新的代码:
此时的最新代码版本为:mmdetection2.3.0

我尝试在我之前的环境中运行最新的mmdetection2.3.0版本,然后就报错呀,报错呀!

  • 我之前mmdetection2.0.0版本——》在这里
  • mmdetection2.3.0版本mmdetection2.0.0版本又多了一些模型,具体自己查看

1 运行mmdetection2.3.0版本报错

python tools/train.py -h

1.1 错误解决历程

报错·:ImportError: cannot import name 'get_git_hash' from 'mmcv.utils'

这是因为在mmcv==0.6.2中并没有这个函数,在最新版本的mmcv==1.0.5版本anaconda3/envs/TensorRT/lib/python3.7/site-packages/mmcv/utils/version_utils.py中可以查看到有get_git_hash()函数

然后把mmcv版本更新到1.0.5版本,然后又报错:ModuleNotFoundError: No module named 'mmcv._ext',然后官网中是issues中提示:需要安装mmcv==0.6.2,啊啊啊啊啊!!!,这是死循环吗???

提示安装mmdet==2.2.1版本,如何安装指定版本的mmdet呢?

  • 首先在:mmdetection/mmdet/version.py中的__version__ =中的版本呢改为:__version__==2.2.1
  • 然后再重新编译一遍:pip install -v -e .

之后可以使用conda查看版本:

conda list mmdet

(TensorRT) shl@zfcv:~/project/mmdetection_0805$ conda list mmdet
# packages in environment at /home/shl/anaconda3/envs/TensorRT:
#
# Name                    Version                   Build  Channel
mmdet                     2.2.1                     dev_0    <develop>
(TensorRT) shl@zfcv:~/project/mmdetection_0805$

然后查看官网的这个issues大概是25天前提交的,推测一下:mmcv-full的版本应该是1.0.2`

安装mmcv-full==1.0.2由于官网提供的这个库包是tar,gz格式,没有whl,这意味着这个库包是没有编译的,需要自己下载之后编译:

1、下载mmcv-full==1.0.2tar.gz库包文件

wget https://files.pythonhosted.org/packages/af/ac/72d570062951e090139a790acfaca495d655f24f008c8ae0c2140cff0eb9/mmcv-full-1.0.2.tar.gz

2、解压

tar zxvf mmcv-full-1.0.2.tar.gz

3、编译,编译的时间稍微有一点久

cd mmcv-full-1.0.2
python setup.py build

4、编译完之后安装

python setup install

5、查看mmcv-full是否安装成功

(TensorRT) shl@zfcv:~/project/mmdetection_0805$ conda list mmcv
# packages in environment at /home/shl/anaconda3/envs/TensorRT:
#
# Name                    Version                   Build  Channel
mmcv                      0.6.2                    pypi_0    pypi
mmcv-full                 1.0.2                    pypi_0    pypi
(TensorRT) shl@zfcv:~/project/mmdetection_0805$

然后执行继续执行:python tools/train.py -h,然后你懂的又报错ImportError: cannot import name 'get_git_hash' from 'mmcv.utils'哈哈哈哈哈哈...,又回到了这里

这种方法没有解决我的问题,然后有isuess说可是使用torch==1.4.0版本,然后我去官网的仓库看了下,对于cuda10.2目前只支持torch1.5.0及以上版本我TMD感动的泪水要化成河流啦!

然后还是乖乖去官网看官网对最新版本的mmdetection的安装教程吧,毕竟有些错误经验跟不上官网的更新速度!

截至:20200805 mmdetection/mmdet/version.py中定义的mmdet==2.3.0版本,因此下载最新的版本的代码就必须安装mmcv-full>=1.0.5版本,而截至20200805最新版本的mmcv-full=1.0.5(这个版本是20200803上传的)

告诉我们一个道理:
第一个吃螃蟹的人,必须要付出代价!!!

1.2 最终的解决方法

请放弃它,不要跟它多BB

2 mmdetection2.3.0 安装过程

首先列举下官网对安装环境的要求:

  • Linux or macOS (Windows is not currently officially supported)
  • Python 3.6+
  • PyTorch 1.3+
  • CUDA 9.2+ (If you build PyTorch from source, CUDA 9.0 is also compatible)
  • GCC 5+
  • mmcv

下面是我实际环境安装过程:

2.1 创建虚拟环境

conda create -n mm0805 python=3.7

2.2 安装torch和torchvison

pip intall torch==1.5.0 torchvision==0.6.0

2.3 安装mmcv

pip install mmcv-full==latest+torch1.5.0+cu101 -f https://openmmlab.oss-accelerate.aliyuncs.com/mmcv/dist/index.html

2.4 下载mmdetection

git clone https://github.com.cnpmjs.org/open-mmlab/mmdetection.git

2.5 安装编译mmdet

cd mmdetection
pip install -r requirements/build.txt
pip install -v -e . # or "python setup.py develop"

2.6 测试环境是否可用

python tools/train.py -h

2.7 单GPU训练

python tools/train.py ./configs/gfl/gfl_r50_fpn_mstrain_2x_coco.py --work-dir 1_work_dirs_gfl_hat_hair_beard --gpu-ids 1

2.8 多GPU训练

./tools/dist_train.sh ./configs/gfl/gfl_r50_fpn_mstrain_2x_coco.py 3 --work-dir 1_work_dir_gfl_hat_hair_beard

训练结束的结果:

从训练损失可以看,还可以继续下降,可以增大epoch训练的轮数,在下面的配置文件中修改:total_epochs

./configs/gfl/gfl_r50_fpn_mstrain_2x_coco.py

# learning policy
lr_config = dict(step=[16, 22])
total_epochs = 60    # 默认值为24
# multi-scale training
img_norm_cfg = dict(mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_rgb=True)
train_pipeline = [dict(type='LoadImageFromFile'),dict(type='LoadAnnotations', with_bbox=True),dict(type='Resize',img_scale=[(1333, 480), (1333, 800)],multiscale_mode='range',keep_ratio=True),dict(type='RandomFlip', flip_ratio=0.5),dict(type='Normalize', **img_norm_cfg),dict(type='Pad', size_divisor=32),dict(type='DefaultFormatBundle'),dict(type='Collect', keys=['img', 'gt_bboxes', 'gt_labels']),
]
data = dict(train=dict(pipeline=train_pipeline))

2.9 再测试集上进行测试

2.10 可视化训练的loss结果

1、可视化命令:

python tools/analyze_logs.py plot_curve ./1_work_dir_gfl_hat_hair_beard/20200805_154359.log.json --keys loss_cls loss_ bbox loss_dfl --out ./plot_result/1_gfl_hat_hair_beard


2、可视化命令参数介绍:

  • plot_curve:该参数后跟的是训练保存的json文件
  • --keys:后面跟的是要绘制的损失关键字,可以跟多个值
  • --out:后面跟的是绘制保存的结果,可以保存成png图片,也可以保存成pdf

3、绘图的结果:

2.11 计算训练的时间

计算训练时间的命令:

python tools/analyze_logs.py cal_train_time ./1_work_dir_gfl_hat_hair_beard/20200805_154359.log.json

2.12 更改训练模型保存的周期 和 从预训练模型恢复训练

默认是每训练一个epoch保存一次模型,如果要更改,需要在:

mmdetection/configs/_base_/default_runtime.py

# 默认是每隔一轮保存一次训练模型,这里我们改成每隔5轮保存一次
checkpoint_config = dict(interval=5)
# yapf:disable
log_config = dict(interval=50,hooks=[dict(type='TextLoggerHook'),# dict(type='TensorboardLoggerHook')])
# yapf:enable
dist_params = dict(backend='nccl')
log_level = 'INFO'
load_from = None
resume_from = None
workflow = [('train', 1)]





♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠

mmdetection2.3.0版本安装过程,以及训练、测试、可视化等(亲测好用,很顺利)相关推荐

  1. CTex3.0版本安装步骤

    CTex3.0版本安装步骤 1.进入 ctex官网,点击下载中心 2.我这里选择百度网盘下载了稳定版本,CTeX_3.0.212.1_X64.exe 3.下载到本地后,双击运行该文件 4.选择中文语言 ...

  2. opensips mysql 版本_Opensips-1.11版本安装过程

    Opensips-1.11版本安装过程 tags:opensips 安装 编译 创建时间:2016-01-28 15:50:48 一般都是安官网的流程去弄,但很多人说找不到或英文的原因弄不来,所以才整 ...

  3. hadoop 3.0+ 版本安装访问50070失败处理方法

    hadoop 3.0+ 版本安装访问50070失败处理方法 安装hadoop 3.0+ 安装成功后访问http://localhost:50070/访问失败,或者http://localhost:90 ...

  4. 华为云计算之FusionCompute8.0版本安装

    华为云计算之FusionCompute8.0版本安装 一.安装CNA8.0 1.准备镜像包 2.创建虚拟机,选择典型 3.选择稍后安装操作系统 4.选择操作系统版本 5.命名虚拟机 6.设置系统盘大小 ...

  5. (一)win10下MySQL 8.0.23安装教程及简单测试

    文章目录 (一)win10下MySQL 8.0.23安装教程及简单测试 1.MySQL官网下载 2.配置环境变量 3.命令行cmd安装MySQL 3.1 管理员权限运行cmd 3.2 数据库初始化 3 ...

  6. 解决Maven:Cannot resolve com.oracle.ojdbc:ojdbc6:11.2.0.1.0报红找不到问题,解决方案亲测有效详细图文教程 问题描述

    解决Maven:Cannot resolve com.oracle.ojdbc:ojdbc6:11.2.0.1.0报红找不到问题,解决方案亲测有效详细图文教程 问题描述 解决方法 问题描述 有小伙伴遇 ...

  7. Linux安装svn服务器和权限配置_亲测成功

    Linux安装svn服务器和权限配置_亲测成功 SVN简介 SVN是Subversion的简称,是一个开放源代码的版本控制系统,通过采用分支管理系统的高效管理,简而言之就是用于多个人共同开发同一个项目 ...

  8. Centos7环境下安装Mysql8详细教程(超详细,亲测百分百成功)

    Centos7环境下安装Mysql8详细教程(超详细,亲测百分百成功) 文章目录 Centos7环境下安装Mysql8详细教程(超详细,亲测百分百成功) 1.上传或者下载mysql安装包 2.检查是否 ...

  9. Axure 8.1.0.3381 激活码 10月20号更新 亲测可用

    Axure 8.1.0.3381  激活码  10月20号更新 亲测可用,立马激活,更新之后不后悔. 激活码查看地址:https://download.csdn.net/download/qq_207 ...

最新文章

  1. ASP.NET 2.0中Page事件的执行顺序
  2. Linux Kernel中gicv3实现:SPIs中断routing到指定的CPU
  3. JAVA实现onvif的ptz控制_使用Onvif协议进行设备PTZ云台控制
  4. solr6.6+jetty+centos+mysql
  5. 第 2 章 Readme
  6. 【leetcode】1053. Previous Permutation With One Swap
  7. 如何创建支持不同屏幕尺寸的Android应用(转载)
  8. 税务计算机 试题分析,税务师考试方式、题型、计算器使用规定
  9. 不吹不黑聊聊前端框架--尤雨溪Live整理
  10. .net core Fleck WebSocket使用笔记
  11. 等额本息和等额本金、提前还款
  12. 国庆头像小程序源码,带独立版后台同时可添加小程序跳转+流量主,所有改动均可后台添加+带搭建教程
  13. Migrando电子商务可以实现Iluria para o Shopify(Python的标准)
  14. 可等待计时器与用户计时器
  15. 通过点击按钮打开新的窗口
  16. 农产品电商app开发的主要价值与功能分析
  17. Django:将项目移动到新环境
  18. 基于matlab国内外水果自动分级方面,水果自动识别的BP神经网络方法
  19. 湖南工学院 戴成秋 计算机,【计算机专业论文】教师胜任力模型计算机专业论文(共1840字)...
  20. ARM ADDS和ADCS的区别

热门文章

  1. linux下开放端口
  2. Leetcode:Intersection of Two Linked Lists
  3. [deviceone开发]-Star分享的优惠券商户管理端App开源
  4. Java 类的一些高级特征
  5. 微软云平台媒体服务实践系列 1- 使用静态封装为iOS, Android 设备实现点播(VoD)方案...
  6. 3D游戏编程入门(十五)索引缓存
  7. jquery zoom jquery放大镜特效
  8. Hdu5015 233 Matrix矩阵
  9. python能参加奥赛吗-盘点 | 国内含金量高有助于升学的编程竞赛大全,家长必读!...
  10. 全国青少年软件编程python等级考试-全国青少年软件编程等级考试:Python一级考试大纲...