Hi,
You need to create your own custom Dataset class and override __getitem__ method in the way that it returns two set of images.
Here is a snippet:
import torch
from torch.utils import data

class Dataset(data.Dataset):
    """
    Return Dataset class representing our data set
    """
    def __int__(self, path_inputs, path_labels):
        """
        Initialize data set as a list of paths corresponding to each item of data set and labels of each data

        Args:
            path_inputs: a list of paths for each data point in data set
            path_labels: label of an item in data set 
        """

        self.path_labels = path_labels  # list of paths to original images
        self.path_inputs= path_inputs  # list of paths to images with noise

    def __len__(self):
        """
        Return the length of data set using list of paths

        :return: number of samples in data set
        """
        return len(self.path_inputs)  # or path_labels

    def __getitem__(self, index):
        """
        Generate one item of data set. 

        :param item: index of item in paths list

        :return: a sample of data
        """

        # Code to load data using Image.open or cv2.imread
        X = cv2.imread(self.path_inputs[index])  # images without noise
        y = cv2.imread(self.path_labels[index])  # images with noise

        return X, y

Bests