首页 > 其他分享 >mmcv2.0中build loop、loop.run()、从Dataloader中取数据、run_iter()函数

mmcv2.0中build loop、loop.run()、从Dataloader中取数据、run_iter()函数

时间:2024-08-28 15:49:54浏览次数:14  
标签:mmcv2.0 __ run 函数 Dataloader build loop

本篇博客中,我们以推理为例。

首先进入Runer类中的test函数:

然后进入Runer类中的build_test_loop函数:

然后经过Registry中的build_from_cfg等函数,进入TestLoop类的__init__进行初始化。初始化的时候,会进入父类BaseLoop,在BaseLoop中,会对Dataloader进行build,关于mmcv2.0是如何构建Dataloader的,可以参考:mmcv2.0中build dataloader的流程 - Picassooo - 博客园 (cnblogs.com)

build完test_loop之后,继续运行Runer类中的test函数剩余代码,包括执行一些带有before_run的钩子函数、load checkpoint等,然后是开始跑test_loop的run函数了:

test_loop的run函数包括需要执行一些钩子函数、从Dataloader中取样本数据、执行run_iter函数等:

这里对从从Dataloader中取样本数据的流程进行展开介绍。在执行enumerate(self.dataloader)时,会进入到Dataloader的__iter__函数:

这个__iter__函数会初始化一个迭代器_MultiProcessingDataLoaderIter:

执行上图中第988行代码的时候,会跳转到_BaseDataLoaderIter类中,执行__init__函数,对这个类初始化:

在初始化完_BaseDataLoaderIter和_MultiProcessingDataLoaderIter之后,将会回到Dataloader的__iter__函数,执行这个函数的retrun的时候,也就是执行第433行的时候,会跳转到_BaseDataLoaderIter的__next__函数,这个函数将会返回读取到的data,这个data是经过pipeline处理之后的images和meta_infos。

 

标签:mmcv2.0,__,run,函数,Dataloader,build,loop
From: https://www.cnblogs.com/picassooo/p/18384917

相关文章

  • 组合逻辑环(Combinational Logic Loop)
    组合逻辑电路组合逻辑电路是数字电子学中一类基本的电路类型,它由一系列逻辑门组成,用于实现特定的逻辑功能。与时序逻辑电路不同,组合逻辑电路的输出完全取决于当前的输入信号,而不受之前输入的影响。换句话说,组合逻辑电路没有记忆功能,输出仅由当前时刻的输入决定。组合逻辑电路的......
  • HTMLTestRunner_cn测试报告不显示案例的函数注释解决方法
    找到生成函数注释的代码如下:def_generate_report_test(self,rows,cid,tid,n,t,o,e):#e.g.'pt1.1','ft1.1',etchas_output=bool(oore)#ID修改点为下划线,支持Bootstrap折叠展开特效-Findyoutid=(n==0and'p�......
  • [Javascript + Performance] How to run a large number of time-consuming tasks and
    Tryoption1:Promise PromiserunninginMicrotaskqueue,andrenderingshouldwaituntilthequeueisempty;Ifyouhavealargenumberoftime-consuminginmicrotask,itwillalsoblockrenderingfunctionrunTask(task){Promise.resolve().then(()=&g......
  • STHTMLTestRunner
    #-*-coding:utf-8-*-"""ATestRunnerforusewiththePythonunittestingframework.ItgeneratesaHTMLreporttoshowtheresultataglance.Thesimplestwaytousethisistoinvokeitsmainmethod.E.g.importunittestimportHTML......
  • 安防视频监控EasyCVR视频汇聚平台出现代码层面报错“panic:runtime error”的原因排查
    安防视频监控/视频集中存储/云存储/磁盘阵列EasyCVR平台基于云边端一体化架构,兼容性强、支持多协议接入,包括国标GB/T28181协议、部标JT808、GA/T1400协议、RTMP、RTSP/Onvif协议、海康Ehome、海康SDK、大华SDK、华为SDK、宇视SDK、乐橙SDK、萤石云SDK等。有用户反馈,启动EasyCVR......
  • facefusion整合包cuda 环境报错解决: onnxruntime::ProviderLibrary::Get [ONNXRuntim
    在b站下载了一个up提供的facefusion整合包,运行go-web.bat报错报错信息如下:2024-08-1910:53:07.6316097[E:onnxruntime:Default,provider_bridge_ort.cc:1992onnxruntime::TryGetProviderInfo_CUDA]D:\a\_work\1\s\onnxruntime\core\session\provider_bridge_ort.cc:1637......