在使用预训练的 Resnet34 编码器训练 U-Net 之前预处理数据集

问题描述 投票:0回答:0

我是 pytorch 的新手,我尝试使用预训练的 ResNet34 为编码器构建 U-Net 模型,以分割糖尿病性视网膜病变。在预训练的 ResNet34 编码器 pytorch 文档中,它说图像必须用 mean [0.485, 0.456, 0.406] 和 std [0.229, 0.224, 0.225] 进行归一化,但是当我尝试在像这样训练之前预处理数据集时

class PreprocessDataset(Dataset):
    def __init__(self, data, target):
       self.data = data
       self.target = target
    
       self.preprocess_data = transforms.Compose([
           transforms.Resize(256),
           transforms.CenterCrop(224),
           transforms.ToTensor(),
           transforms.Normalize(mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225])
       ])

       self.preprocess_target = transforms.Compose([
           transforms.Resize(256),
           transforms.CenterCrop(224),
           transforms.ToTensor(),
       ])
    
    def __getitem__(self, index):
       data_img = Image.open(self.data[index])
       target_img = Image.open(self.target[index])

       x = self.preprocess_data(data_img)
       y = self.preprocess_target(target_img)

       return x, y
    
    def __len__(self):
       return len(self.data)

输入图像将是这样的,我不确定它是否可以生成预测的掩码,因为它的结果很暗

这里有人使用预训练的 resnet34 作为编码器以及如何在训练前对图像进行归一化吗?非常感谢!

conv-neural-network normalize unet-neural-network
© www.soinside.com 2019 - 2024. All rights reserved.