文章目录

  • Q: `GenerizedRCNN`系的输入都是不一样大小的图片,为什么还可以每个GPU设置batchsize,它们没法stack呀?

Q: GenerizedRCNN系的输入都是不一样大小的图片,为什么还可以每个GPU设置batchsize,它们没法stack呀?

穷学生的回答: 看了半个小时的代码,我了解到有个DatasetMapper类,此类将一张图片经过处理变成了一个dict,里面有 image, keypoint, bbox, mask 这些需要用到的目标标签,可是image还是没法是size对齐的呀,至于为什么可以设置batchsize呢,还需要从代码里看

# 有删减
images = self.preprocess_image(batched_inputs)
gt_instances = [x["instances/targets"].to(self.device) for x in batched_inputs]
features = self.backbone(images.tensor)
proposals, proposal_losses = self.proposal_generator(images, features, gt_instances)
_, detector_losses = self.roi_heads(images, features, proposals, gt_instances)

这段代码摘自detectron2源代码detectron2/modeling/meta_arch/rcnn.py:l110 这段代码里面所用的preprocess_image函数就是对图像进行一一的预处理,而不是整个batch一起进行(无需stack,因为他用了for循环),输入list of 上述mapping完的dict 得到一个Sequence[torch.Tensor]里面全是归一化结束后大小不一的图片Tensor,有个叫from_tensor成员函数可以将不整齐的大小进行padding,返回了对象为ImageList类。

@staticmethod
def from_tensors(tensors: Sequence[torch.Tensor], size_divisibility: int = 0, pad_value: float = 0.0 ) -> "ImageList":"""Args:tensors: a tuple or list of `torch.Tensors`, each of shape (Hi, Wi) or(C_1, ..., C_K, Hi, Wi) where K >= 1. The Tensors will be padded with `pad_value`so that they will have the same shape.size_divisibility (int): If `size_divisibility > 0`, also adds padding to ensurethe common height and width is divisible by `size_divisibility`pad_value (float): value to padReturns:an `ImageList`."""

以上代码来自detectron2/structures/image_list.py:l50__docstr__就知道为啥了吧?GL&HF

Detectron2迷幻问题解答 - 持续连载相关推荐

  1. 强烈推荐!分享一个持续连载的《特征工程小锦囊》项目,代码已开源!

    随着我们在机器学习.数据建模.数据挖掘分析这条发展路上越走越远,其实越会感觉到特征工程的重要性,平时我们在很多地方都会看到一些很好的特征工程技巧,但是都会是一个完整项目去阅读,虽然说这样子也可以学习挖 ...

  2. Proficoud FAQ常见问题解答(持续添加)

    1.There is no vaild private key on the device ........... A:please reset token in proficloud 2.the e ...

  3. Spring Boot/Cloud干货汇总(持续更新:20180226版)

    抽空对本号推送的Spring相关内容做个汇总整理,包括: - Spring - Spring Boot - Spring cloud - 其他Spring干货内容 Spring Boot专题 基础入门 ...

  4. unity ui框架_[教程汇总+持续更新]Unity从入门到入坟——收藏这一篇就够了

    ----------------塔防(更新中),作者重写了基础篇(下方目录为:1.1(新) 基础)目前还在持续连载了5篇,因为不多我们更新完就能追到原作者的进度了------------------- ...

  5. 1个月连载30个设计模式真实案例,挑战年薪60W不是梦

    本文所有内容均节选自<设计模式就该这样学> 本文自2021年10月29日起持续连载,请大家持续关注.... 序言 Design Patterns: Elements of Reusable ...

  6. 毛哥的快乐生活(连载至第30篇)

    某年某月某日,某地. 眼前既没有山河大海.也没有人山人海. 毛哥面前,只有一堆花生米,以及半瓶啤酒- 菜不够硬,酒不够量-恰如人生,往往不足够的如意 那又如何,so what啊 在生命不知不觉流逝中, ...

  7. 选择Kong作为你的API网关

    Kong(https://github.com/Kong/kong)是一个云原生,高效,可扩展的分布式 API 网关.自 2015 年在 github 开源后,广泛受到关注,目前已收获 1.68w+ ...

  8. 群友:事务中的异常不也抛出了,为什么没catch到而回滚?

    上周,我们通过这篇文章<为什么catch了异常,但事务还是回滚了?>(https://blog.didispace.com/why-catch-exception-transaction- ...

  9. elf section类型_在 498 行极小 OS 上跑标准 ELF 程序

    本文首发于 在 498 行极小系统跑标准 ELF 程序 简介 ELF 在 Linux 系统中作为标准可执行文件格式已经存在了 ~25 年. 如果要在 Linux 下直接研究 ELF,通常很难绕过 Li ...

最新文章

  1. Perforce使用之创建DEPOT流程
  2. 【深度学习入门到精通系列】神经网络中动量的概念
  3. js 获取时间对象代码
  4. TypeScript class 表达式 - Class expression
  5. filebeat 乱码
  6. linux下覆盖文件命令,在Linux中使用命令行进行文件覆盖的操作
  7. 1112: 进制转换(函数专题)
  8. MOSS项目开发 周记(第一周)
  9. 深圳手机厂家逐渐倾向谷歌Android手机
  10. android horizontalscrollview属性,Android中HorizontalScrollView使用方法详解
  11. vue分享至qq空间,新浪微博,微信朋友圈及微信好友
  12. 【商品架构day9】阿里商品的标题那么长、怎么办
  13. FastDFS搭建图片服务器
  14. 【软件安全】API HOOK
  15. 通过Fiddler进行抓包并分析
  16. AlignedReID: Surpassing Human-Level Performance in Person Re-Identification
  17. 虚拟机安装ros时候出现“The directory ‘/home/xxx/.cache/pip‘...”的问题解决方法(亲测有用)
  18. Mac外接磁盘使用哪种格式速度最快,NTFS?exFAT?HFS+?APFS?
  19. 提供小区物业综合管理系统解决方案
  20. 基于STC15W系列的板载LED灯控制程序讲解

热门文章

  1. 云服务器和共享主机,共享虚拟主机、独享虚拟主机还是云服务器?
  2. P2404 自然数的拆分问题
  3. web页面内调取QQ应用
  4. OpenCV实现爱江山更爱美人时装周刷票
  5. 滚!你的程序员同事才没空抛弃你,他在…
  6. 论文写作踩坑-Wiley杂志投稿-Latex模板使用Windows-Stix-fontinstaller安装Wiley stix-fonts字体出错
  7. 带你全方位了解考研初试!
  8. RuntimeError: a leaf Variable that requires grad has been used in an in-place operation
  9. VB控件实现IObjectSafety安全接口(zt)
  10. 从telnet www.baidu.com 80 来玩一下http