mmdetection2.3.0版本安装过程,以及训练、测试、可视化等(亲测好用,很顺利)
欢迎大家关注笔者,你的关注是我持续更博的最大动力
原创文章,转载告知,盗版必究
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.2
的tar.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版本安装过程,以及训练、测试、可视化等(亲测好用,很顺利)相关推荐
- CTex3.0版本安装步骤
CTex3.0版本安装步骤 1.进入 ctex官网,点击下载中心 2.我这里选择百度网盘下载了稳定版本,CTeX_3.0.212.1_X64.exe 3.下载到本地后,双击运行该文件 4.选择中文语言 ...
- opensips mysql 版本_Opensips-1.11版本安装过程
Opensips-1.11版本安装过程 tags:opensips 安装 编译 创建时间:2016-01-28 15:50:48 一般都是安官网的流程去弄,但很多人说找不到或英文的原因弄不来,所以才整 ...
- hadoop 3.0+ 版本安装访问50070失败处理方法
hadoop 3.0+ 版本安装访问50070失败处理方法 安装hadoop 3.0+ 安装成功后访问http://localhost:50070/访问失败,或者http://localhost:90 ...
- 华为云计算之FusionCompute8.0版本安装
华为云计算之FusionCompute8.0版本安装 一.安装CNA8.0 1.准备镜像包 2.创建虚拟机,选择典型 3.选择稍后安装操作系统 4.选择操作系统版本 5.命名虚拟机 6.设置系统盘大小 ...
- (一)win10下MySQL 8.0.23安装教程及简单测试
文章目录 (一)win10下MySQL 8.0.23安装教程及简单测试 1.MySQL官网下载 2.配置环境变量 3.命令行cmd安装MySQL 3.1 管理员权限运行cmd 3.2 数据库初始化 3 ...
- 解决Maven:Cannot resolve com.oracle.ojdbc:ojdbc6:11.2.0.1.0报红找不到问题,解决方案亲测有效详细图文教程 问题描述
解决Maven:Cannot resolve com.oracle.ojdbc:ojdbc6:11.2.0.1.0报红找不到问题,解决方案亲测有效详细图文教程 问题描述 解决方法 问题描述 有小伙伴遇 ...
- Linux安装svn服务器和权限配置_亲测成功
Linux安装svn服务器和权限配置_亲测成功 SVN简介 SVN是Subversion的简称,是一个开放源代码的版本控制系统,通过采用分支管理系统的高效管理,简而言之就是用于多个人共同开发同一个项目 ...
- Centos7环境下安装Mysql8详细教程(超详细,亲测百分百成功)
Centos7环境下安装Mysql8详细教程(超详细,亲测百分百成功) 文章目录 Centos7环境下安装Mysql8详细教程(超详细,亲测百分百成功) 1.上传或者下载mysql安装包 2.检查是否 ...
- Axure 8.1.0.3381 激活码 10月20号更新 亲测可用
Axure 8.1.0.3381 激活码 10月20号更新 亲测可用,立马激活,更新之后不后悔. 激活码查看地址:https://download.csdn.net/download/qq_207 ...
最新文章
- ASP.NET 2.0中Page事件的执行顺序
- Linux Kernel中gicv3实现:SPIs中断routing到指定的CPU
- JAVA实现onvif的ptz控制_使用Onvif协议进行设备PTZ云台控制
- solr6.6+jetty+centos+mysql
- 第 2 章 Readme
- 【leetcode】1053. Previous Permutation With One Swap
- 如何创建支持不同屏幕尺寸的Android应用(转载)
- 税务计算机 试题分析,税务师考试方式、题型、计算器使用规定
- 不吹不黑聊聊前端框架--尤雨溪Live整理
- .net core Fleck WebSocket使用笔记
- 等额本息和等额本金、提前还款
- 国庆头像小程序源码,带独立版后台同时可添加小程序跳转+流量主,所有改动均可后台添加+带搭建教程
- Migrando电子商务可以实现Iluria para o Shopify(Python的标准)
- 可等待计时器与用户计时器
- 通过点击按钮打开新的窗口
- 农产品电商app开发的主要价值与功能分析
- Django:将项目移动到新环境
- 基于matlab国内外水果自动分级方面,水果自动识别的BP神经网络方法
- 湖南工学院 戴成秋 计算机,【计算机专业论文】教师胜任力模型计算机专业论文(共1840字)...
- ARM ADDS和ADCS的区别
热门文章
- linux下开放端口
- Leetcode:Intersection of Two Linked Lists
- [deviceone开发]-Star分享的优惠券商户管理端App开源
- Java 类的一些高级特征
- 微软云平台媒体服务实践系列 1- 使用静态封装为iOS, Android 设备实现点播(VoD)方案...
- 3D游戏编程入门(十五)索引缓存
- jquery zoom jquery放大镜特效
- Hdu5015 233 Matrix矩阵
- python能参加奥赛吗-盘点 | 国内含金量高有助于升学的编程竞赛大全,家长必读!...
- 全国青少年软件编程python等级考试-全国青少年软件编程等级考试:Python一级考试大纲...