Use Custom Dataloaders

阅读: 评论:0

Use Custom Dataloaders

Use Custom Dataloaders

github链接

现有的数据读取器是怎么工作的呢?

Detectron2包含一个建好的数据读取管道,很容易明白其工作原理,也方便自己重写一个数据读取器。

Detectron2提供两个函数,build_detection_{train,test}_loader从给定的config文件中创建数据读取器,下面是它的原理:

  • 输入数据集名称,如"coco_2017_train",以一个轻量级的,标准的统一接口将数据读取为list[dict]。此时数据实际上还没有开始被模型使用,图片还没有读到内存中,随机的数据增强也没做。可以从之前的dataset教程中查看数据集的相关使用。

  • list中的每个字典对象都是mapper函数映射而来。

    • 用户可以通过指定build_detection_{train,test}_loader中的mapper参数来标准化mapping函数,,默认的mapper是DatasetMapper。
    • 输出格式没有限制,只要能被数据消费者使用,这里的消费者一般指模型。
    • mapper的作用是将每一个轻量、标准的数据表示方式转化成模型可以识别的格式,比如,读取图像,随机做增强。默认mapper的输出解释如下:
  • mapper的输出是batch形式,通常是一个list。

  • 一个batch的数据是数据读取器的输出,典型的,是model.forward()的输入。

写数据读取器

在现有数据读取器上实现一个新的mapper通常是我们需要的。

如果你想做些不一样的,比如用自己的数据或者不同的batch逻辑,可以自己写数据读取器。数据读取器是一个简单的迭代器,只要组织成模型需要的输入形式,可以使用任何你喜欢的工具。

使用一般的数据读取器

如果用的是DefaultTrainer,可以重写build_{train,test}__loader方法来使用自己的数据读取器。参见densepose的例子。

如果自己写训练逻辑,可以简单的使用自己的数据读取器。

本文发布于:2024-01-31 14:14:14,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170668165629110.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:Custom   Dataloaders
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23