Hi everyone! 
Could you help me to verify if I am doing right in the way that I am extracting color channels from CIE Lab* color space?
Below is the code that I am using:
class CustomDataset(Dataset):
    """Custom Dataset."""

    def __init__(self, root_dir, transform=None):
        """
        Args:
            root_dir (string): Directory with all the images.
            transform (callable, optional): Optional transform to be applied
                on a sample.
        """
        self.root_dir = root_dir
        self.transform = transform
        self.file_list=os.listdir(root_dir)

    def __len__(self):
        return len(self.file_list)

    def __getitem__(self, idx):
        img = Image.open(self.root_dir+'/'+self.file_list[idx]) # Read the image using PIL
        
        if self.transform is not None:
            img_original = self.transform(img)
            img_ori_resized = transforms.Resize((64,64),2)(img_original)

            img_ori_lab = rgb2lab(img_original) # Convert from RGB to CIE L*a*b* color space. The image shape is (w, h, 3)
            img_ori_lab = img_ori_lab.transpose(2, 0, 1) # Change the image shape to (3, w, h)            
            img_ori_lab = np.asarray(img_ori_lab) # Convert to numpy array
            img_l = img_ori_lab[0,:,:] # Select the Luminance chanel(L channel) from the image. I suppose that the L channel is the first layer of the 3d array due to the shape (3, w, h)
            img_l = np.asarray(img_l, dtype=np.float32)
            img_l = torch.from_numpy(img_l) # Convert from numpy array to torch tensor. This tensor hold only pixels intensities of the L channel
            
            img_resized_lab = rgb2lab(img_ori_resized) # Convert from RGB to CIE L*a*b* color space. The image shape is (w, h, 3)
            img_resized_lab = img_resized_lab.transpose(2, 0, 1) # Change the image shape to (3, w, h)    
            img_resized_lab = np.asarray(img_resized_lab)
            img_ab = img_resized_lab[1:3, :, :] # Select the a and b chanels from the image. I suppose that the a and b channels are the second and third layer of the 3d array due to the shape (3, w, h)
            img_ab = np.asarray(img_ab, dtype=np.float32)
            img_ab = torch.from_numpy(img_ab) # Convert from numpy array to torch tensor. This tensor hold only pixels intensities of the a,b channels
            
            return img_l, img_ab # Return the channels in a splitted way

My question is whether I am doing this channel separation correctly and whether I am actually selecting the first matrix of the image for the luminance channel (L) and the second and third matrices for channels a and b.
I saw in some places, some people using the following notation:
img_l = img_ori_lab[:,:,0] # Just an example. The shape is (w, h, 3)

In this way shown above, I think that is wrong because pytorch will interpret that the number of channels is w instead 3…so I did the implementation that I am showing and asking for help.
Best regards,
Matheus Santos.