0

[SOLVED] The code has been updated: I wish to create an image dataset for self supervised learning, where I have a dataset of 1000 unlabelled images (.jpg files). I wish to create 4000 labelled images for rotation angle detection pre-task.

For each image , I wish to create 4 labelled images with rotation of 0, 90, 180, or 270 degrees and assign corresponding pseudo-labels (0,90,180 and 270) to them.

e.g. folder has : Img1.jpg , Img2.jpg , Img3.jpg.

dataset (Image, label): (Img1_0.jpg, 0), (Img2_0.jpg, 0), (Img3_0.jpg, 0), (Img1_90.jpg, 90), (Img2_90.jpg, 90), (Img3_90.jpg, 90), (Img1_180.jpg, 180), (Img2_180.jpg, 180), (Img3_180.jpg, 180), (Img1_270.jpg, 270), (Img2_270.jpg, 270), (Img3_270.jpg, 270).

The images are in .jpg format in the file "/content/unsup_f".

Code:

import torch
import torchvision.transforms.functional as F
from torch.utils.data import Dataset, DataLoader
from PIL import Image
from torchvision import transforms as T
from torchvision.datasets import ImageFolder

class RotationDataset(Dataset):
    def __init__(self, dataset, degrees):
        self.dataset = dataset
        self.degrees = degrees

    def __len__(self):
        return len(self.dataset) * len(self.degrees)

    def __getitem__(self, index):
        img_index = index // len(self.degrees)
        img, _ = self.dataset[img_index]
        degree_index = index % len(self.degrees)
        degree = self.degrees[degree_index]
        rotated_img = F.rotate(img, degree)
        label = torch.tensor(degrees[degree_index])
        return rotated_img, label

trans_comp = T.Compose([
  T.Resize([256,256]),
  T.ToTensor()
])

unlabelled_dataset = ImageFolder(root='/content/unsup_f', transform=trans_comp)

# Example usage

    degrees = [0, 90, 180, 270]
rotated_dataset = RotationDataset(unlabelled_dataset, degrees)

dataloader = DataLoader(rotated_dataset, batch_size=1, shuffle=True)

I tried to create this class but was not able to do so. can someone help.

Error:

FileNotFoundError: Found no valid file for the classes .ipynb_checkpoints. Supported extensions are: .jpg, .jpeg, .png, .ppm, .bmp, .pgm, .tif, .tiff, .webp
Formal_this
  • 121
  • 5

0 Answers0