資料的載入順序是上圖(來自mmdetection官網)中的順序進行,上圖中只有一次padding,但是其實dataloader一共有兩次padding,一次是pad,另外一次就是collect後,給模型時,會透過mmcv中的collate進行統一padding,使得每一個minibatch的輸入大小是一致的。具體可以參考mmcv的collate實現,這個其實也是基於pytorch來的。
Mmdetection 中config檔案中,一般如果不想flip,在配置檔案中,把randomflip刪掉的話,會出現 KeyError: 'flip' when 'RandomFlip' is close。這個的原因主要是因為datapipelines中,formattting中,在collect資料時,Collect類中,
這裡meta_keys的keys存在flip,和flip_direction,預設是輸出的。因此如果你不想flip,可以有兩種做法,一種是在config檔案中,把randomflip的flip_ratio設定為0.這種是最簡單的方式,別的地方不用改那麼多。還有一種更嚴格的方式,配置檔案裡,改一下meta_keys,把flip, flip_direction刪掉。如下圖所示,此時collect資料時會只對meta_keys中進行collect,此時把配置檔案中的randomflip這一行配置刪掉,不會再有任何問題。