目录

1 学习pytorch进行图像处理的四个必用链接:

2 运行Mask R-CNN例程时的问题点

2.1 在哪儿下载 engine.py  transforms.py  utils.py?

Github下载xxx.py文件的方法

2.2 安装pycocotools

2.3 手动输入代码时出现的一些问题

2.4 CPU模式下运行代码的小BUG

3 个人对于tensorflow caffe pytorch的浅显体会



1 学习pytorch进行图像处理的四个必用链接:

先附上pytorch的中文和英文版教程链接,Pytorch API手册,以及github图像库链接:

中文:http://pytorch123.com/

英文:https://pytorch.org/tutorials/index.html

API:https://pytorch.org/docs/stable/index.html

vision:https://github.com/pytorch/vision

2 运行Mask R-CNN例程时的问题点

学习Pytorch中,在windows下运行教程中的例子,发现还有一些地方存在不明白的,现总结如下。

2.1 在哪儿下载 engine.py  transforms.py  utils.py?

教程里没有给出链接,是在github上pytorch的torchvision repository里面:

https://github.com/pytorch/vision/tree/master/references/detection

当然,运行的时候还是会提示各种错误,那是因为一些依赖的.py没有,依然可以从上面的链接中找到,特别的:

coco_utils.py  coco_eval.py

将上述.py都下载下来,拷贝到例程所在的文件夹下。

话说如何下载?之前我没有github账号的时候,右边都有clone download的按钮,现在登录了,却没有了下载的按钮,或者它就没有打包。。。百度后发现了下载的方法:

Github下载xxx.py文件的方法

点开需要下载的那个.py文件,然后代码的右上角有个“Raw”的标签,右键->链接保存为   ,,即可下载了。

再运行,就会出现终极错误。找不到pycocotools,请继续步骤2

2.2 安装pycocotools

直接pip install pycocotools是会报错的,参考下面链接的方法:

https://blog.csdn.net/u012128777/article/details/100973199?depth_1-utm_source=distribute.pc_relevant.none-task&utm_source=distribute.pc_relevant.none-task

发现没有git,然后又参考 https://blog.csdn.net/qq_32786873/article/details/80570783 进行安装,但是github很不稳定,网速很慢,就在csdn上搜了一个需要积分的下载下来,40多M。安装好后,添加环境变量,然后在之前的cmd里面执行git --version,提示依然没有git。

好像是没有更新吧,关闭命令行窗口,重新打开后,git就出现了!然后按照刚才的链接,开始下载pycocotools。我是等了好一会儿,才安装好。

2.3 手动输入代码时出现的一些问题

由于代码是我手动输入的,出现了很多小错误。

在编写PennFudanDataset时,方法__getitem__函数忘记添加  return:

在PennFudanDataset里,masks误写为mask

写完最后一个main方法后,没有添加执行 main:

以及出现这种错误:

RuntimeError: Given transposed=1, weight of size 1024 256 2 2, expected input[78, 256, 14, 14] to have 1024 channels, but got 256 channels instead

有一种说法是没有将图像转化为“RGB’,查看代码后发现已经转化了,那问题在哪儿呢?

很明显是该层的输入通道与实际得到的通道数不匹配,再次检测代码,是这里错了,

model.roi_heads.mask_predictor = MaskRCNNPredictor(in_features,hidden_layer,num_classes)

是输入特征数错了,改成in_features_mask,一切就OK啦

in_features_mask = model.roi_heads.mask_predictor.conv5_mask.in_channels

2.4 CPU模式下运行代码的小BUG

发现了一个小bug,这个代码本意是想能在GPU和CPU上都兼容运行的,但是个人认为作者仅在GPU上跑通,CPU上运行很慢,而且在evaluate()的时候会报错。

engine.py的86行:

torch.cuda.synchronize()

这句话就默认了当前是GPU模式,没有GPU的话这里就报错了,因此,个人给添加了一句话:

if torch.cuda.is_available():torch.cuda.synchronize()

这样在没有GPU的时候,bypass了CUDA同步的操作。问题解决!下面是evaluate的运行结果:

Test:  [ 0/50]  eta: 0:13:53  model_time: 16.3845 (16.3845)  evaluator_time: 0.2324 (0.2324)  time: 16.6657  data: 0.0489
Test:  [49/50]  eta: 0:00:13  model_time: 13.2440 (13.5054)  evaluator_time: 0.1157 (0.1208)  time: 14.0909  data: 0.0177
Test: Total time: 0:11:22 (13.6521 s / it)
Averaged stats: model_time: 13.2440 (13.5054)  evaluator_time: 0.1157 (0.1208)
Accumulating evaluation results...
DONE (t=0.06s).
Accumulating evaluation results...
DONE (t=0.04s).
IoU metric: bbox
 Average Precision  (AP) @[ IoU=0.50:0.95 | area=   all | maxDets=100 ] = 0.001
 Average Precision  (AP) @[ IoU=0.50      | area=   all | maxDets=100 ] = 0.008
 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.005
 Average Recall     (AR) @[ IoU=0.50:0.95 | area=   all | maxDets=  1 ] = 0.001
 Average Recall     (AR) @[ IoU=0.50:0.95 | area=   all | maxDets= 10 ] = 0.010
 Average Recall     (AR) @[ IoU=0.50:0.95 | area=   all | maxDets=100 ] = 0.136
 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.060
 Average Recall     (AR) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.144
IoU metric: segm
 Average Precision  (AP) @[ IoU=0.50:0.95 | area=   all | maxDets=100 ] = 0.000
 Average Precision  (AP) @[ IoU=0.50      | area=   all | maxDets=100 ] = 0.000
 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.000
 Average Recall     (AR) @[ IoU=0.50:0.95 | area=   all | maxDets=  1 ] = 0.000
 Average Recall     (AR) @[ IoU=0.50:0.95 | area=   all | maxDets= 10 ] = 0.000
 Average Recall     (AR) @[ IoU=0.50:0.95 | area=   all | maxDets=100 ] = 0.017
 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.020
 Average Recall     (AR) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.017

3 个人对于tensorflow caffe pytorch的浅显体会

总结一下学习Pytorch的体会:

1. 与python原生风格贴合紧密,用起来很顺手,就像numpy一样。

2.与tensorflow相比,可以及时调试,发现问题,不像tensorflow那样,虽然有eger模式,但还是不习惯那种with session,更不习惯花大力气去维护变量,要知道起名还是很难为人的,虽然tensorflow有slim版本,但是在也不愿意去委屈自己,天天升级习惯。

3.跟caffe比起来,pytorch简直是明了许多,不用再去看好几千行的caffemodel文件了,改一个模型,名字就得换半天,太焦心了,而且还得使用各种shell命令去训练和评估模型。特别的,使用这个脚本from engine import train_one_epoch, evaluate,可以使用简单的几行代码进行训练,特别方便。

4.pytorch将神经网络的主体规范化,做到十分明了。而最让人头疼的数据集加载方面,还是比较出色的,用python的风格来加载数据,入手很快,也容易理解,debug模式很容易找到问题所在。

总之,在简单使用了三个流行的深度学习平台后,很推荐新手使用pytorch入门。

pytorch学习:运行Mask R-CNN例程相关推荐

  1. PyTorch学习(八)CNN手写体识别

    本节将介绍利用CNN进行手写体识别 首先呢,我们需要下载数据来进行训练.下载的代码如下: 注意:数据集下载一次就好, DOWNLOAD_MNIST = Truetrain_data=torchvisi ...

  2. 【从线性回归到 卷积神经网络CNN 循环神经网络RNN Pytorch 学习笔记 目录整合 源码解读 B站刘二大人 绪论(0/10)】

    深度学习 Pytorch 学习笔记 目录整合 数学推导与源码详解 B站刘二大人 目录传送门: 线性模型 Linear-Model 数学原理分析以及源码详解 深度学习 Pytorch笔记 B站刘二大人( ...

  3. pytorch学习笔记(2):在MNIST上实现一个CNN

    参考文档:https://mp.weixin.qq.com/s/1TtPWYqVkj2Gaa-3QrEG1A 这篇文章是在一个大家经常见到的数据集 MNIST 上实现一个简单的 CNN.我们会基于上一 ...

  4. 使用Win10系统在R中加载TensorFlow-gup加快深度学习运行之攻略

    弗朗索瓦.肖莱著<深度学习R语言版>说,用CUP进行深度学习运算可能需要数小时,但用GPU可能只要几分钟.不过,该书只叙述了在Ubuntu下安装GUP的方法,不推荐Windows下使用Te ...

  5. 深度学习入门之PyTorch学习笔记:多层全连接网络

    深度学习入门之PyTorch学习笔记 绪论 1 深度学习介绍 2 深度学习框架 3 多层全连接网络 3.1 PyTorch基础 3.2 线性模型 3.2.1 问题介绍 3.2.2 一维线性回归 3.2 ...

  6. 系统学习深度学习(四) --CNN原理,推导及实现源码分析

    之前看机器学习中,多层感知器部分,提到可以在设计多层感知器时,对NN的结构设计优化,例如结构化设计和权重共享,当时还没了解深度学习,现在看到CNN,原来CNN就是这方面的一个代表.CNN由纽约大学的Y ...

  7. Ubuntu16.06 单Nvidia显卡 深度学习运行时 界面卡顿(刷新慢)的解决方法

    关于Ubuntu单Nvidia显卡 深度学习运行时 界面卡顿(刷新慢)的解决方法 背景 我在按照 本链接 的第二种方法安装后,成功安装cuda 10.0与cudnn之后,在深度学习训练过程中发现了严重 ...

  8. 莫烦---Pytorch学习

    今天翻翻资料,发现有些地方的说明不太到位,修改过来了. Will Yip 2020.7.29 莫烦大神Pytorch -->> 学习视频地址 2020年开年就遇上疫情,还不能上学,有够难受 ...

  9. Pytorch学习记录-torchtext和Pytorch的实例( 使用神经网络训练Seq2Seq代码)

    Pytorch学习记录-torchtext和Pytorch的实例1 0. PyTorch Seq2Seq项目介绍 1. 使用神经网络训练Seq2Seq 1.1 简介,对论文中公式的解读 1.2 数据预 ...

最新文章

  1. YOLOv4团队开源最新力作!1774fps、COCO最高精度,分别适合高低端GPU的YOLO
  2. [OS复习]操作系统综述2
  3. 语言题库体型判断问题_1000道Python题库系列分享20(43道填空与判断题)
  4. 3ds Max 2018 在安装后无法启动或出现不稳定
  5. collection转换为list_JAVA 集合 接口继承关系和实现,List,Set,Map(总结)
  6. 阿里巴巴开源通用机器学习算法平台Alink
  7. POI EXCEL读取 性能问题
  8. Theano2.1.10-基础知识之循环
  9. 计算指定人数班级的班级平均成绩(计数器控制控制的循环)
  10. iOS开发中遇到的一些优化手段(即时更新)
  11. SVN提交文件冲突怎么办?
  12. Ubuntu20.04 添加打印机
  13. Win11更改系统文件夹的默认保存位置方法分享
  14. 苏州企业如何识别不良商标代理机构
  15. linux应用层读写event,Linux应用层获取鼠标坐标
  16. 报错 Missing number, treated as zero. \begin{subfigure}{0.24\linewidth}?怎么解决
  17. 百度网盘批量重命名文件免费脚本---2020.07
  18. 计算机重命名后sql实例名称修改_离水的鱼_新浪博客
  19. Python解压所有压缩包到同一文件夹下
  20. 计算机内存的安装方法,笔记本电脑内存安装方法是什么

热门文章

  1. Eigen库数据结构内存对齐问题
  2. 考研c语言复试常问问题,2018考研复试常问的十个问题及回答指导
  3. mysql慢查询原因_mysql 慢查询的原因分析点滴
  4. 框架封装_重大突破,欧菲光成功研发半导体封装用高端引线框架
  5. mysql空指针异常处理_mysql 查询空指针异常
  6. 电脑主板跳线_电脑主板跳线连接图
  7. OpenCV-Python实战(番外篇)——OpenCV、NumPy和Matplotlib直方图比较
  8. java逐行读取文件_Java逐行读取文件
  9. python字符串encode()decode()
  10. mongodb示例_MongoDB findAndModify()示例