记录mask-rcnn的复现所遇到的问题

介于水平有限,所以是主要参考现成的一篇博客跑的。不过还是遇到了一些问题,这里做下记录

参考链接

(57条消息) 手把手教你训练自己的Mask R-CNN图像实例分割模型(PyTorch官方教程)_一个菜鸟的奋斗的博客-CSDN博客_实例分割模型

第一个是文件夹的问题,你必须要把相关文件拷贝到当前目录,比如utils.py engine.py transforms.py等,不是傻傻地pip install

第二个是transforms.py有个函数 get_dimensions

我发现torchvision.transforms.functional模块当时的版本是没有这个函数的。

主要是实现

channels,height,width=get_dimensions(image)

我有查看了下torchvision.transforms.functional有哪些方法,我发现有

get_image_size和get_image_num_channels方法

我想可能是包新版本这两个方法之后是合并了吧。(我猜的,也可能是拆开了,我太懒了= =)

所以我自己写了个函数

from torchvision.transforms.functional import get_image_size
from torchvision.transforms.functional import get_image_num_channels

def get_dimensions(image):
    height, width = get_image_size(image)[1],get_image_size(image)[0]
    channels = get_image_num_channels(image)
    return channels,height,width

解决了这个问题。

第三个是数据类型的问题

for images, targets in metric_logger.log_every(data_loader, print_freq, header):
    images = list(image.to(device) for image in images)
#这里images里面是int8型

这里的images原本是int型的,报错要改为float型,所以我改成了

for images, targets in metric_logger.log_every(data_loader, print_freq, header):
    images = list(image.to(device) for image in images)
    images = [ items.float() for items in images]
#images是个列表

第四个是学习率设置太大,导致在train的时候loss特别大出现nan

只要把学习率改小就好了。

结果

Epoch: [9] Total time: 0:00:19 (0.3245 s / it)
hahahhaha
creating index...
index created!
Test:  [ 0/50]  eta: 0:00:13  model_time: 0.1376 (0.1376)  evaluator_time: 0.0535 (0.0535)  time: 0.2753  data: 0.0835  max mem: 3358
Test:  [49/50]  eta: 0:00:00  model_time: 0.1464 (0.1449)  evaluator_time: 0.0807 (0.0910)  time: 0.2470  data: 0.0035  max mem: 3358
outle
Test: Total time: 0:00:12 (0.2460 s / it)
Averaged stats: model_time: 0.1464 (0.1449)  evaluator_time: 0.0807 (0.0910)
Accumulating evaluation results...
DONE (t=0.06s).
Accumulating evaluation results...
DONE (t=0.05s).
IoU metric: bbox
 Average Precision  (AP) @[ IoU=0.50:0.95 | area=   all | maxDets=100 ] = 0.044
 Average Precision  (AP) @[ IoU=0.50      | area=   all | maxDets=100 ] = 0.178
 Average Precision  (AP) @[ IoU=0.75      | area=   all | maxDets=100 ] = 0.013
 Average Precision  (AP) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = -1.000
 Average Precision  (AP) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.000
 Average Precision  (AP) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.048
 Average Recall     (AR) @[ IoU=0.50:0.95 | area=   all | maxDets=  1 ] = 0.056
 Average Recall     (AR) @[ IoU=0.50:0.95 | area=   all | maxDets= 10 ] = 0.178
 Average Recall     (AR) @[ IoU=0.50:0.95 | area=   all | maxDets=100 ] = 0.317
 Average Recall     (AR) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = -1.000
 Average Recall     (AR) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.025
 Average Recall     (AR) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.338
IoU metric: segm
 Average Precision  (AP) @[ IoU=0.50:0.95 | area=   all | maxDets=100 ] = 0.010
 Average Precision  (AP) @[ IoU=0.50      | area=   all | maxDets=100 ] = 0.050
 Average Precision  (AP) @[ IoU=0.75      | area=   all | maxDets=100 ] = 0.000
 Average Precision  (AP) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = -1.000
 Average Precision  (AP) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.000
 Average Precision  (AP) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.012
 Average Recall     (AR) @[ IoU=0.50:0.95 | area=   all | maxDets=  1 ] = 0.019
 Average Recall     (AR) @[ IoU=0.50:0.95 | area=   all | maxDets= 10 ] = 0.059
 Average Recall     (AR) @[ IoU=0.50:0.95 | area=   all | maxDets=100 ] = 0.118
 Average Recall     (AR) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = -1.000
 Average Recall     (AR) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.013
 Average Recall     (AR) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.126

第五个是会有数据集会出现.ipynb_checkpoints的隐藏文件,读取的时候会有问题

删掉这个文件就好了

誓为血气少年郎,不做羊质虎皮人!

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值