2y7c3 / Super-Resolution-Neural-Operator

Super-Resolution Neural Operator, in CVPR 2023
MIT License
137 stars 12 forks source link

dataloader的疑问 #3

Open SunyuKy opened 1 year ago

SunyuKy commented 1 year ago

首先感谢大佬分享的代码,我在debug训练代码时,wrappers.py中的get_item()我不太理解。 if self.inp_size is not None:
idx = torch.tensor(np.random.choice(h_hrw_hr, h_lrw_lr, replace=False))

idx,_ = torch.sort(idx)

        hr_coord = hr_coord.view(-1, hr_coord.shape[-1])
        hr_coord = hr_coord[idx, :]
        hr_coord = hr_coord.view(h_lr, w_lr, hr_coord.shape[-1])

        hr_rgb = crop_hr.contiguous().view(crop_hr.shape[0], -1)
        hr_rgb = hr_rgb[:, idx]
        hr_rgb = hr_rgb.view(crop_hr.shape[0], h_lr, w_lr)

在训练的config里指定了 inp_size,所以会执行上述代码。 从高分辨率的coord中随机取与低分辨率coord的像素个数并resize成与低分辨率coord一样的大小,并作为gt 为什么要这样做呢? 这是不是相当于让网络依据低分辨率的coord去预测高分辨率中的随机一些像素?

2y7c3 commented 1 year ago

同一个 batch 中存在不同的放大倍率,需要进行采样,统一大小,同时最小的放大倍率为 1,即最小的 gt 大小为 lr 图的大小,所以以此为采样基准。论文补充文件中有关于随机采样和顺序采样的对比。