multi scale
import random
import torch
from torchvision import transforms
# Define the range of image sizes (e.g., +/- 50% of the original size)
min_scale = 0.5
max_scale = 1.5
# Custom dataset and DataLoader setup
# Assuming dataset is your custom dataset
# Define a function to randomly select an image size from the defined range
def random_resize(image, min_scale, max_scale):
target_scale = random.uniform(min_scale, max_scale)
new_width = int(image.width * target_scale)
new_height = int(image.height * target_scale)
return transforms.Resize((new_height, new_width))(image)
# Define a transformation to resize images to the randomly selected size
transform = transforms.Compose([
transforms.ToPILImage(),
transforms.Lambda(lambda img: random_resize(img, min_scale, max_scale)),
transforms.ToTensor(),
# Add other transformations as needed (e.g., normalization)
])
# Apply the transformation to the dataset
# Assuming dataset is a PyTorch Dataset object
dataset = dataset.transform(transform)
# DataLoader setup
# Assuming batch_size, num_workers, etc., are defined elsewhere
dataloader = torch.utils.data.DataLoader(dataset, batch_size=batch_size, num_workers=num_workers, shuffle=True)Last updated