github链接
Detectron2包含一个建好的数据读取管道,很容易明白其工作原理,也方便自己重写一个数据读取器。
Detectron2提供两个函数,build_detection_{train,test}_loader
从给定的config文件中创建数据读取器,下面是它的原理:
输入数据集名称,如"coco_2017_train",以一个轻量级的,标准的统一接口将数据读取为list[dict]。此时数据实际上还没有开始被模型使用,图片还没有读到内存中,随机的数据增强也没做。可以从之前的dataset教程中查看数据集的相关使用。
list中的每个字典对象都是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小时内删除。
留言与评论(共有 0 条评论) |