mmdetection使用记录

环境配置

服务器将整个项目git过来,在环境中依次安装项目所需库

conda install pytorch torch 1.8.0   cudatoolkit......
pip install openmim
mim install mmdet
pip install -r requirements/build.txt
pip install -v -e .  # or "python setup.py develop"

需重新创建两个文件夹,checkpoints用于存放模型文件(从readme中进行下载),data用于存放自己的数据集(注意按照官方给的结构)

运行image_demo.py

1.服务器
直接命令行

python demo/image_demo.py demo/demo.jpg configs/faster_rcnn/faster_rcnn_r50_fpn_1x_coco.py \
    checkpoints/faster_rcnn_r50_fpn_1x_coco_20200130-047c8118.pth --device cpu

2.pycharm
首先需要确保本地的文件夹和远程git的文件夹路径相对应起来,否则系统将默认在远端tmp新建一个文件夹,很不方便,然后环境选择anaconda->envs->jiubu->bin->python或者python3.7或者python3那几个都可以,然后pycharm->tools->deployment->configuration->mapping里边的路径也和和远端git的这个一致!(即setting里边这个path mapping)
不能勾选远端和本地同步的选项!!!每次改动代码直接手动上传,tools->configuretiaon里边或者直接ctrl+shift+alt+x,不能设置为自动上传!!
mmdetection使用记录_第1张图片
mmdetection使用记录_第2张图片

然后我直接跑image_demo.py,并且在parse_args函数里面把参数通过default传给他了,但是还报错说我没给参数,我新建了一个py文件

from mmdet.apis import init_detector, inference_detector, show_result_pyplot

config_file = 'configs/faster_rcnn/faster_rcnn_r50_fpn_1x_coco.py'
# 从 model zoo 下载 checkpoint 并放在 `checkpoints/` 文件下
# 网址为: http://download.openmmlab.com/mmdetection/v2.0/faster_rcnn/faster_rcnn_r50_fpn_1x_coco/faster_rcnn_r50_fpn_1x_coco_20200130-047c8118.pth
checkpoint_file = 'checkpoints/faster_rcnn_r50_fpn_1x_coco_20200130-047c8118.pth'
device = 'cuda:0'
# 初始化检测器
model = init_detector(config_file, checkpoint_file, device=device)
# 推理演示图像
result = inference_detector(model, 'demo/demo.jpg')
#显示
show_result_pyplot(model, 'demo/demo.jpg', result,0.3)

跑通
mmdetection使用记录_第3张图片

参考1: mmdetection文档.

番外:pycharm命令行方法:

python tools/test.py \
    --cfg experiments/mpii/hrnet/w32_256x256_adam_lr1e-3.yaml \
    TEST.MODEL_FILE models/pytorch/pose_mpii/pose_hrnet_w32_256x256.pth

mmdetection使用记录_第4张图片
mmdetection使用记录_第5张图片

注意:
1 Working directory目录选为这个项目这一级(本来是test.py所属的tools文件夹这一级),否则会报找不到文件错误
2 将python tools/test.py后面的东西填入Parameters中

指定GPU

import os
os.environ["CUDA_DEVICE_ORDER"] = "PCI_BUS_ID"
os.environ["CUDA_VISIBLE_DEVICES"] = "4, 5"

model = torch.nn.DataParallel(model, device_ids=[0]).cuda()

分布式训练
1 命令行

CUDA_VISIBLE_DEVICES=1,2 python -m torch.distributed.launch --nproc_per_node=2 tools/train_net.py        --config-file "configs/pretrain/glip_A_Swin_T_O365.yaml"        --skip-test        MODEL.WEIGHT "glip_a_tiny_o365.pth"        DATASETS.TRAIN '("coco_grounding_train", )'        MODEL.BACKBONE.FREEZE_CONV_BODY_AT -1 SOLVER.IMS_PER_BATCH 1 SOLVER.USE_AMP True SOLVER.MAX_EPOCH 24 TEST.DURING_TRAINING False TEST.IMS_PER_BATCH 16 SOLVER.FIND_UNUSED_PARAMETERS False SOLVER.BASE_LR 0.00001 SOLVER.LANG_LR 0.00001 SOLVER.STEPS \(0.67,0.89\) DATASETS.DISABLE_SHUFFLE True MODEL.DYHEAD.SCORE_AGG "MEAN" TEST.EVAL_TASK detection

注:无需在代码中指定os.environ[‘MASTER_ADDR’]和os.environ[‘MASTER_PORT’]
2 pycharm
总体
mmdetection使用记录_第6张图片
1 Script path之前是本地的运行文件,即下图
在这里插入图片描述

现在改为远程launch.py的路径

\mnt\data\lijiaojiao\anaconda3\envs\mmpose38\lib\python3.8\site-packages\torch\distributed\launch.py

2 Parameters之前只有python tools/train_net.py后面的内容
现在是
mmdetection使用记录_第7张图片
注意可能直接复制会有编码的问题 手动改一下即可 或者直接在相应配置文件设置
3 Environment variables
之前不用管 现在是可以设置显卡,不知道可不可以把这部分方代码里

CUDA_VISIBLE_DEVICES=0,2

此外 此时上面的运行文件可能由train_net.py改为launch.py
在这里插入图片描述

你可能感兴趣的:(pytorch,python,深度学习,python,人工智能)