研究是以新的方式做事。这给如何在代码中创建抽象带来了压力, 对于任何规模较大的研究工程项目而言,这都是一个挑战:

  1. 一方面,它需要非常精简的抽象,来以新方式进行所有操作。打破现有的抽象并将其替换为新的抽象必须应该是便利容易的。

  2. 另一方面,这样的项目也需要合理的高层抽象,以便用户可以轻松地以标准方式进行操作,而不必担心仅某些研究人员关心的细节。

在detectron2中,有两种类型的接口可以共同解决这种压力:

  1. 仅采用"config"参数的函数和类(在成熟接口的情况下,可以选择额外参数最少的一组)。这些函数和类实现"标准默认"行为:它将从配置中读取所需内容并执行"标准"操作。用户只需要加载一个标准配置并传递它,而不必担心使用了哪些参数以及它们的含义。

  2. 具有定义明确自变量的函数和类。

    具有定义明确自变量的函数和类是整个系统中一个很小的组成部分。它们需要用户费力地链接在一起,但是可以以更灵活的方式链接在一起。当你需要实现不同于detectron2中包含的"标准默认值"的某些东西时,可以重复使用这些定义明确的组件。

如果你只需要标准行为,请阅读入门指南(https://detectron2.readthedocs.io/tutorials/getting_started.html) 应该足够了。如果你需要将detectron2扩展到自己所需要的, 有关更多详细信息,请参见以下教程:

  • Detectron2包含一些标准数据集,但是你可以使用自定义数据集。请参阅(https://detectron2.readthedocs.io/tutorials/datasets.html)。

  • Detectron2包含从数据集创建数据加载器的标准逻辑,但是你也可以编写自己的逻辑。请参阅(https://detectron2.readthedocs.io/tutorials/data_loading.html)。

  • Detectron2实现许多标准的检测模型,并为你提供重写其行为的方法。请参见使用模型(https://detectron2.readthedocs.io/tutorials/models.html)和编写模型(https://detectron2.readthedocs.io/tutorials/write-models.html)。

  • Detectron2提供了默认的训练过程,适用于常见的训练任务。你可以使用hooks自定义它,也可以编写自己的训练过程。见(https://detectron2.readthedocs.io/tutorials/training.html)。

原文链接:https://detectron2.readthedocs.io/tutorials/extend.html

☆☆☆为方便大家查阅,小编已将Detectron2专栏文章统一整理到公众号底部菜单栏,同步更新中,关注公众号,点击左下方“文章”,如图:

或点击下方“阅读原文”,进入Detectron2专栏,即可查看系列文章。

☆ END ☆

如果看到这里,说明你喜欢这篇文章,请转发、点赞。微信搜索「uncle_pn」,欢迎添加小编微信「 mthler」,每日朋友圈更新一篇高质量博文(无广告)。

扫描二维码添加小编↓

扩展Detectron2的接口与逻辑相关推荐

  1. 51单片机汇编学习11——扩展原理与接口技术

    终于到这一小节了.这一节讲扩展原理与接口技术. 那么什么是扩展原理&接口技术呢?其实主要是3种. 1.扩展一个程序存储器 2.扩展一个数据存储器 3.扩展IO口 1.扩展程序存储器 其实这个扩 ...

  2. 主分区跟扩展分区的关系以及逻辑分区

    主分区能够激活,通常用来引导系统.扩展分区本身并不能直接用来存放数据,逻辑分区是扩展分区进一步分割出来的区块,通常用来存储数据.如果将逻辑分区比作房间,那么扩展分区就好比客房区(包括若干个房间). 通 ...

  3. 对LinqtoExcel的扩展 【数据有限性,逻辑有效性】

    接着上文的内容继续讲,上文中我提到了对Excel操作帮助类库LinqToExcel类库的优缺点和使用方法.我也讲到了自己在使用中碰到的问题,我也开发了一个简单的类库解决,下面就讲解一下这个帮助类. G ...

  4. 详解微信开放平台第三方平台代小程序开发业务基本接口调用逻辑

    详解微信第三方小程序代开发 微信申请第三方之后可以获取授权方的很多权限,主要的是生码和待开发,生码的第三方授权之前已经写了一篇文章,最近做了小程序待开发,总结一下写下来供大家参考 由百牛信息技术bai ...

  5. 【cocos2d-x从c++到js】22:使用非侵入方式扩展UI系统接口的举例

    如何较好的运用脚本语言,使用他的动态性是关键.使用动态性来扩展代码,可以保证非侵入方式.这种方式,把原先的引擎代码和当前自己的二次开发代码隔离开了,便于后续的升级维护.而且,又不像继承那么重量级. 下 ...

  6. Linux——扩展和缩减、删除逻辑卷

    一.查看LVM状态信息: pvdisplay #显示物理卷信息vgdisplay #显示卷组信息lvdisplay #显示逻辑卷信息 二.扩展和缩减卷组: 通过添加额外的物理卷为卷组增加更多磁盘空间, ...

  7. Linux下的Vlan子接口(逻辑子接口)

    一.Vlan子接口基础知识 vlan子接口定义: 通过协议和技术将一个物理接口(interface)虚拟出来的多个逻辑接口.vlan子接口共享物理网卡的流量. 相对子接口而言,这个物理接口称为主接口. ...

  8. java接口可以扩展抽象类_Java—接口与抽象类

    1.语法层面上的区别 1)抽象类可以提供成员方法的实现细节,而接口中只能存在public abstract 方法: 2)抽象类中的成员变量可以是各种类型的,而接口中的成员变量只能是public sta ...

  9. linux 系统lv扩展_Linux增加LV(逻辑卷)容量

    Linux增加LV(逻辑卷)容量 2017-09-29-17:34:13 个人原创博客,转载请注明出处. 查看逻辑卷的相关命令: lvs vgs 命令: [root@arch ~]#vgs VG #P ...

最新文章

  1. idea access数据库连接_idea代码神器:根据表生成代码
  2. 数据库面试题【十一、InnoDB引擎的4大特性】
  3. 查看SecureCRT保存的密码
  4. linux 根据ip查机器名
  5. windows任务计划程序 坑
  6. Windows 11 上大招!正式支持安卓!
  7. python怎么输出表格中随机数_python 输出一个随机数
  8. java模拟dos窗口
  9. Gemini 2 for Mac(重复文件查找清理工具)
  10. 微信小程序 访问locolhost_微信小程序开发——本地调试
  11. 华硕网吧服务器型号,华硕服务器-Z10PA-D8 | 专业网吧维护
  12. 线和面的方程区别_平面方程和直线方程的区别?
  13. 云桌面到底是干什么的?
  14. mysql截取前几个字符串_mysql中截取指定字符前后的字符串
  15. android 设置iptv vlan tag的命令,IPTV+VLAN设置教程
  16. 漏洞复现----11、GlassFish任意文件读取
  17. 《我要飞,永远都不会累 》---伤感留言
  18. 软件工程——成本效益分析
  19. 如何在网格上绘画【UE4】
  20. charles安装及设置(三星手机)

热门文章

  1. 笔记本上PCMCIA口与EXPRESS口的区别
  2. MySql 查询某某老师教授的课名和教室
  3. 2013年12月综合交友类行业网站综合影响力排名
  4. 三星Samsung SF-531P 驱动
  5. 什么是缓存架构,什么又是后端分布式多级缓存架构,全文解析
  6. java反序列化多个对象_java 序列化与反序列化多个对象 抛出异常
  7. 短线的高手一般看什么,盯盘需要关注哪些内容
  8. 360加固签名验证_360加固保加固apk并自动签名
  9. Java实验(13) 正八边形类
  10. 智慧校园综合解决方案