Introduction
Compose transforms lets you combine many image changes into one step. This makes preparing images for a model easy and organized.
transforms.Compose([
transforms.Transform1(),
transforms.Transform2(),
...
])transform = transforms.Compose([
transforms.Resize((128, 128)),
transforms.ToTensor()
])transform = transforms.Compose([
transforms.RandomHorizontalFlip(),
transforms.ToTensor(),
transforms.Normalize((0.5, 0.5, 0.5), (0.5, 0.5, 0.5))
])import torch from torchvision import transforms from PIL import Image import requests from io import BytesIO # Download an example image url = 'https://pytorch.org/assets/images/deeplab1.png' response = requests.get(url) img = Image.open(BytesIO(response.content)) # Compose transforms: resize, convert to tensor, normalize transform = transforms.Compose([ transforms.Resize((64, 64)), transforms.ToTensor(), transforms.Normalize(mean=[0.5, 0.5, 0.5], std=[0.5, 0.5, 0.5]) ]) # Apply transforms img_t = transform(img) # Print shape and pixel stats print(f"Tensor shape: {img_t.shape}") print(f"Min pixel value: {img_t.min():.3f}") print(f"Max pixel value: {img_t.max():.3f}")
Compose in PyTorch transforms?Compose is used to combine several image transformations so they run one after another.Compose.Compose takes a list of transforms inside square brackets [].transform = transforms.Compose([
transforms.ToTensor(),
transforms.Resize((14, 14))
])
img_tensor = transform(image)ToTensor() converts it to a tensor with shape [channels, height, width] where channels=1.Resize((14,14)) changes height and width to 14 each, channels remain 1.transform = transforms.Compose([
transforms.Normalize((0.5,), (0.5,)),
transforms.ToTensor()
])Normalize expects a tensor input, so ToTensor() must come first to convert image to tensor.Pass the test and this pattern moves unknown