1. 数据增强:让UNet学会"举一反三"的秘诀
第一次用UNet做图像去噪时,我犯了个典型错误——直接把原始数据扔进模型训练。结果模型在测试集上表现惨不忍睹,PSNR值比随机猜测好不了多少。后来才明白,数据增强才是提升模型泛化能力的秘密武器。就像教小孩认动物,如果只给正面照片,他永远认不出侧面的猫咪。
在PyTorch中实现数据增强简直不要太简单。我们常用的transforms.Compose就像个魔法工具箱,这是我实战中验证过的增强组合:
transform = transforms.Compose([
transforms.RandomHorizontalFlip(p=0.5), # 50%概率水平翻转
transforms.RandomVerticalFlip(p=0.3), # 30%概率垂直翻转
transforms.RandomRotation(15), # ±15度随机旋转
transforms.ColorJitter(brightness=0.2, contrast=0.2), # 亮度对比度微调
transforms.ToTensor()
])
这里有个坑要注意:增强必须同时作用于噪声图和干净图!我曾在GitHub看到有人只对噪声图做增强,结果模型直接学歪了。正确的做法是自定义一个PairRandomCrop类:
class PairRandomCrop:
def __init__(self, size):
self.size = size
def __call__(self, noisy, clean):
i, j, h, w = transforms.RandomCrop.get_params(
noisy, output_size=s


1262

被折叠的 条评论
为什么被折叠?



