RandomResizedCrop in PyTorch (2)
Buy Me a Coffee☕ *Memos: My post explains RandomResizedCrop() about size argument. My post explains RandomResizedCrop() about ratio argument. My post explains OxfordIIITPet(). RandomResizedCrop() can crop a random part of an image, then resize it to a given size as shown below: from torchvision.datasets import OxfordIIITPet from torchvision.transforms.v2 import RandomResizedCrop from torchvision.transforms.functional import InterpolationMode origin_data = OxfordIIITPet( root="data", transform=None ) s1000sc0_0origin_data = OxfordIIITPet( # `s` is size and `sc` is scale. root="data", transform=RandomResizedCrop(size=1000, scale=[0, 0]) ) s1000sc0_1_data = OxfordIIITPet( root="data", transform=RandomResizedCrop(size=1000, scale=[0, 1]) ) s1000sc0_05_data = OxfordIIITPet( root="data", transform=RandomResizedCrop(size=1000, scale=[0, 1]) ) s1000sc05_1_data = OxfordIIITPet( root="data", transform=RandomResizedCrop(size=1000, scale=[0, 1]) ) s1000sc0001_0001_data = OxfordIIITPet( root="data", transform=RandomResizedCrop(size=1000, scale=[0.001, 0.001]) ) s1000sc001_001_data = OxfordIIITPet( root="data", transform=RandomResizedCrop(size=1000, scale=[0.01, 0.01]) ) s1000sc01_01_data = OxfordIIITPet( root="data", transform=RandomResizedCrop(size=1000, scale=[0.1, 0.1]) ) s1000sc02_02_data = OxfordIIITPet( root="data", transform=RandomResizedCrop(size=1000, scale=[0.2, 0.2]) ) s1000sc03_03_data = OxfordIIITPet( root="data", transform=RandomResizedCrop(size=1000, scale=[0.3, 0.3]) ) s1000sc04_04_data = OxfordIIITPet( root="data", transform=RandomResizedCrop(size=1000, scale=[0.4, 0.4]) ) s1000sc05_05_data = OxfordIIITPet( root="data", transform=RandomResizedCrop(size=1000, scale=[0.5, 0.5]) ) s1000sc06_06_data = OxfordIIITPet( root="data", transform=RandomResizedCrop(size=1000, scale=[0.6, 0.6]) ) s1000sc07_07_data = OxfordIIITPet( root="data", transform=RandomResizedCrop(size=1000, scale=[0.7, 0.7]) ) s1000sc08_08_data = OxfordIIITPet( root="data", transform=RandomResizedCrop(size=1000, scale=[0.8, 0.8]) ) s1000sc09_09_data = OxfordIIITPet( root="data", transform=RandomResizedCrop(size=1000, scale=[0.9, 0.9]) ) s1000sc1_1origin_data = OxfordIIITPet( root="data", transform=RandomResizedCrop(size=1000, scale=[1, 1]) ) s1000sc10_10origin_data = OxfordIIITPet( root="data", transform=RandomResizedCrop(size=1000, scale=[10, 10]) ) s1000sc100_100origin_data = OxfordIIITPet( root="data", transform=RandomResizedCrop(size=1000, scale=[100, 100]) ) import matplotlib.pyplot as plt def show_images1(data, main_title=None): plt.figure(figsize=[10, 5]) plt.suptitle(t=main_title, y=0.8, fontsize=14) for i, (im, _) in zip(range(1, 6), data): plt.subplot(1, 5, i) plt.imshow(X=im) plt.tight_layout() plt.show() show_images1(data=origin_data, main_title="origin_data") print() show_images1(data=s1000sc0_0origin_data, main_title="s1000sc0_0origin_data") show_images1(data=s1000sc0_1_data, main_title="s1000sc0_1_data") show_images1(data=s1000sc0_05_data, main_title="s1000sc0_05_data") show_images1(data=s1000sc05_1_data, main_title="s1000sc05_1_data") print() show_images1(data=s1000sc0_0origin_data, main_title="s1000sc0_0origin_data") show_images1(data=s1000sc0001_0001_data, main_title="s1000sc0001_0001_data") show_images1(data=s1000sc001_001_data, main_title="s1000sc001_001_data") show_images1(data=s1000sc01_01_data, main_title="s1000sc01_01_data") show_images1(data=s1000sc02_02_data, main_title="s1000sc02_02_data") show_images1(data=s1000sc03_03_data, main_title="s1000sc03_03_data") show_images1(data=s1000sc04_04_data, main_title="s1000sc04_04_data") show_images1(data=s1000sc05_05_data, main_title="s1000sc05_05_data") show_images1(data=s1000sc06_06_data, main_title="s1000sc06_06_data") show_images1(data=s1000sc07_07_data, main_title="s1000sc07_07_data") show_images1(data=s1000sc08_08_data, main_title="s1000sc08_08_data") show_images1(data=s1000sc09_09_data, main_title="s1000sc09_09_data") show_images1(data=s1000sc1_1origin_data, main_title="s1000sc1_1origin_data") show_images1(data=s1000sc10_10origin_data, main_title="s1000sc10_10origin_data") show_images1(data=s1000sc100_100origin_data, main_title="s1000sc100_100origin_data") # ↓ ↓ ↓ ↓ ↓ ↓ The code below is identical to the code above. ↓ ↓ ↓ ↓ ↓ ↓ def show_images2(data, main_title=None, s=None, sc=(0.08, 1.0), r=(0.75, 1.3333333333333333), ip=InterpolationMode.BILINEAR, a=True): plt.figure(figsize=[10, 5]) plt.suptitle(t=main_title, y=0.8, fontsize=14) for i, (im, _) in zip(range(1, 6), data): plt.subplot(1, 5, i) if s: rrc = RandomResizedCrop(size=s, scale=sc, # Here ratio=r, interpolation=ip, antialia

*Memos:
-
My post explains RandomResizedCrop() about
size
argument. -
My post explains RandomResizedCrop() about
ratio
argument. - My post explains OxfordIIITPet().
RandomResizedCrop() can crop a random part of an image, then resize it to a given size as shown below:
from torchvision.datasets import OxfordIIITPet
from torchvision.transforms.v2 import RandomResizedCrop
from torchvision.transforms.functional import InterpolationMode
origin_data = OxfordIIITPet(
root="data",
transform=None
)
s1000sc0_0origin_data = OxfordIIITPet( # `s` is size and `sc` is scale.
root="data",
transform=RandomResizedCrop(size=1000, scale=[0, 0])
)
s1000sc0_1_data = OxfordIIITPet(
root="data",
transform=RandomResizedCrop(size=1000, scale=[0, 1])
)
s1000sc0_05_data = OxfordIIITPet(
root="data",
transform=RandomResizedCrop(size=1000, scale=[0, 1])
)
s1000sc05_1_data = OxfordIIITPet(
root="data",
transform=RandomResizedCrop(size=1000, scale=[0, 1])
)
s1000sc0001_0001_data = OxfordIIITPet(
root="data",
transform=RandomResizedCrop(size=1000, scale=[0.001, 0.001])
)
s1000sc001_001_data = OxfordIIITPet(
root="data",
transform=RandomResizedCrop(size=1000, scale=[0.01, 0.01])
)
s1000sc01_01_data = OxfordIIITPet(
root="data",
transform=RandomResizedCrop(size=1000, scale=[0.1, 0.1])
)
s1000sc02_02_data = OxfordIIITPet(
root="data",
transform=RandomResizedCrop(size=1000, scale=[0.2, 0.2])
)
s1000sc03_03_data = OxfordIIITPet(
root="data",
transform=RandomResizedCrop(size=1000, scale=[0.3, 0.3])
)
s1000sc04_04_data = OxfordIIITPet(
root="data",
transform=RandomResizedCrop(size=1000, scale=[0.4, 0.4])
)
s1000sc05_05_data = OxfordIIITPet(
root="data",
transform=RandomResizedCrop(size=1000, scale=[0.5, 0.5])
)
s1000sc06_06_data = OxfordIIITPet(
root="data",
transform=RandomResizedCrop(size=1000, scale=[0.6, 0.6])
)
s1000sc07_07_data = OxfordIIITPet(
root="data",
transform=RandomResizedCrop(size=1000, scale=[0.7, 0.7])
)
s1000sc08_08_data = OxfordIIITPet(
root="data",
transform=RandomResizedCrop(size=1000, scale=[0.8, 0.8])
)
s1000sc09_09_data = OxfordIIITPet(
root="data",
transform=RandomResizedCrop(size=1000, scale=[0.9, 0.9])
)
s1000sc1_1origin_data = OxfordIIITPet(
root="data",
transform=RandomResizedCrop(size=1000, scale=[1, 1])
)
s1000sc10_10origin_data = OxfordIIITPet(
root="data",
transform=RandomResizedCrop(size=1000, scale=[10, 10])
)
s1000sc100_100origin_data = OxfordIIITPet(
root="data",
transform=RandomResizedCrop(size=1000, scale=[100, 100])
)
import matplotlib.pyplot as plt
def show_images1(data, main_title=None):
plt.figure(figsize=[10, 5])
plt.suptitle(t=main_title, y=0.8, fontsize=14)
for i, (im, _) in zip(range(1, 6), data):
plt.subplot(1, 5, i)
plt.imshow(X=im)
plt.tight_layout()
plt.show()
show_images1(data=origin_data, main_title="origin_data")
print()
show_images1(data=s1000sc0_0origin_data, main_title="s1000sc0_0origin_data")
show_images1(data=s1000sc0_1_data, main_title="s1000sc0_1_data")
show_images1(data=s1000sc0_05_data, main_title="s1000sc0_05_data")
show_images1(data=s1000sc05_1_data, main_title="s1000sc05_1_data")
print()
show_images1(data=s1000sc0_0origin_data, main_title="s1000sc0_0origin_data")
show_images1(data=s1000sc0001_0001_data, main_title="s1000sc0001_0001_data")
show_images1(data=s1000sc001_001_data, main_title="s1000sc001_001_data")
show_images1(data=s1000sc01_01_data, main_title="s1000sc01_01_data")
show_images1(data=s1000sc02_02_data, main_title="s1000sc02_02_data")
show_images1(data=s1000sc03_03_data, main_title="s1000sc03_03_data")
show_images1(data=s1000sc04_04_data, main_title="s1000sc04_04_data")
show_images1(data=s1000sc05_05_data, main_title="s1000sc05_05_data")
show_images1(data=s1000sc06_06_data, main_title="s1000sc06_06_data")
show_images1(data=s1000sc07_07_data, main_title="s1000sc07_07_data")
show_images1(data=s1000sc08_08_data, main_title="s1000sc08_08_data")
show_images1(data=s1000sc09_09_data, main_title="s1000sc09_09_data")
show_images1(data=s1000sc1_1origin_data, main_title="s1000sc1_1origin_data")
show_images1(data=s1000sc10_10origin_data,
main_title="s1000sc10_10origin_data")
show_images1(data=s1000sc100_100origin_data,
main_title="s1000sc100_100origin_data")
# ↓ ↓ ↓ ↓ ↓ ↓ The code below is identical to the code above. ↓ ↓ ↓ ↓ ↓ ↓
def show_images2(data, main_title=None, s=None, sc=(0.08, 1.0),
r=(0.75, 1.3333333333333333),
ip=InterpolationMode.BILINEAR, a=True):
plt.figure(figsize=[10, 5])
plt.suptitle(t=main_title, y=0.8, fontsize=14)
for i, (im, _) in zip(range(1, 6), data):
plt.subplot(1, 5, i)
if s:
rrc = RandomResizedCrop(size=s, scale=sc, # Here
ratio=r, interpolation=ip,
antialias=a)
plt.imshow(X=rrc(im)) # Here
else:
plt.imshow(X=im)
plt.tight_layout()
plt.show()
show_images2(data=origin_data, main_title="origin_data")
print()
show_images2(data=origin_data, main_title="s1000sc0_0origin_data", s=1000,
sc=[0, 0])
show_images2(data=origin_data, main_title="s1000sc0_1_data", s=1000, sc=[0, 1])
show_images2(data=origin_data, main_title="s1000sc0_05_data", s=1000,
sc=[0, 0.5])
show_images2(data=origin_data, main_title="s1000sc05_1_data", s=1000,
sc=[0.5, 1])
print()
show_images2(data=origin_data, main_title="s1000sc0_0origin_data", s=1000,
sc=[0, 0])
show_images2(data=origin_data, main_title="s1000sc0001_0001_data", s=1000,
sc=[0.001, 0.001])
show_images2(data=origin_data, main_title="s1000sc001_001_data", s=1000,
sc=[0.01, 0.01])
show_images2(data=origin_data, main_title="s1000sc01_01_data", s=1000,
sc=[0.1, 0.1])
show_images2(data=origin_data, main_title="s1000sc02_02_data", s=1000,
sc=[0.2, 0.2])
show_images2(data=origin_data, main_title="s1000sc03_03_data", s=1000,
sc=[0.3, 0.3])
show_images2(data=origin_data, main_title="s1000sc04_04_data", s=1000,
sc=[0.4, 0.4])
show_images2(data=origin_data, main_title="s1000sc05_05_data", s=1000,
sc=[0.5, 0.5])
show_images2(data=origin_data, main_title="s1000sc06_06_data", s=1000,
sc=[0.6, 0.6])
show_images2(data=origin_data, main_title="s1000sc07_07_data", s=1000,
sc=[0.7, 0.7])
show_images2(data=origin_data, main_title="s1000sc08_08_data", s=1000,
sc=[0.8, 0.8])
show_images2(data=origin_data, main_title="s1000sc09_09_data", s=1000,
sc=[0.9, 0.9])
show_images2(data=origin_data, main_title="s1000sc1_1origin_data", s=1000,
sc=[1, 1])
show_images2(data=origin_data, main_title="s1000sc10_10origin_data", s=1000,
sc=[10, 10])
show_images2(data=origin_data, main_title="s1000sc100_100origin_data", s=1000,
sc=[100, 100])