RandAugment in PyTorch (3)
Buy Me a Coffee☕ *Memos: My post explains RandAugment() about num_ops and fill argument. My post explains RandAugment() about magnitude argument. My post explains OxfordIIITPet(). RandAugment() can randomly augment an image as the alternative of AutoAugment() as shown below: from torchvision.datasets import OxfordIIITPet from torchvision.transforms.v2 import RandAugment from torchvision.transforms.functional import InterpolationMode origin_data = OxfordIIITPet( root="data", transform=None ) nmb10_data = OxfordIIITPet( # `nmb` is num_magnitude_bins. root="data", transform=RandAugment(num_magnitude_bins=10) ) nmb25_data = OxfordIIITPet( root="data", transform=RandAugment(num_magnitude_bins=25) ) nmb50_data = OxfordIIITPet( root="data", transform=RandAugment(num_magnitude_bins=50) ) nmb100_data = OxfordIIITPet( root="data", transform=RandAugment(num_magnitude_bins=100) ) nmb500_data = OxfordIIITPet( root="data", transform=RandAugment(num_magnitude_bins=500) ) nmb1000_data = OxfordIIITPet( root="data", transform=RandAugment(num_magnitude_bins=1000) ) no1000nmb10_data = OxfordIIITPet( # `no` is num_ops. root="data", transform=RandAugment(num_ops=1000, num_magnitude_bins=10) ) no1000nmb25_data = OxfordIIITPet( root="data", transform=RandAugment(num_ops=1000, num_magnitude_bins=25) ) no1000nmb50_data = OxfordIIITPet( root="data", transform=RandAugment(num_ops=1000, num_magnitude_bins=50) ) no1000nmb100_data = OxfordIIITPet( root="data", transform=RandAugment(num_ops=1000, num_magnitude_bins=100) ) no1000nmb500_data = OxfordIIITPet( root="data", transform=RandAugment(num_ops=1000, num_magnitude_bins=500) ) no1000nmb1000_data = OxfordIIITPet( root="data", transform=RandAugment(num_ops=1000, num_magnitude_bins=1000) ) m9nmb10_data = OxfordIIITPet( # `m` is magnitude. root="data", transform=RandAugment(magnitude=9, num_magnitude_bins=10) ) m9nmb25_data = OxfordIIITPet( root="data", transform=RandAugment(magnitude=9, num_magnitude_bins=25) ) m9nmb50_data = OxfordIIITPet( root="data", transform=RandAugment(magnitude=9, num_magnitude_bins=50) ) m9nmb100_data = OxfordIIITPet( root="data", transform=RandAugment(magnitude=9, num_magnitude_bins=100) ) m9nmb500_data = OxfordIIITPet( root="data", transform=RandAugment(magnitude=9, num_magnitude_bins=500) ) m9nmb1000_data = OxfordIIITPet( root="data", transform=RandAugment(magnitude=9, num_magnitude_bins=1000) ) no1000m9nmb10_data = OxfordIIITPet( root="data", transform=RandAugment(num_ops=1000, magnitude=9, num_magnitude_bins=10) ) no1000m9nmb25_data = OxfordIIITPet( root="data", transform=RandAugment(num_ops=1000, magnitude=9, num_magnitude_bins=25) ) no1000m9nmb50_data = OxfordIIITPet( root="data", transform=RandAugment(num_ops=1000, magnitude=9, num_magnitude_bins=50) ) no1000m9nmb100_data = OxfordIIITPet( root="data", transform=RandAugment(num_ops=1000, magnitude=9, num_magnitude_bins=100) ) no1000m9nmb500_data = OxfordIIITPet( root="data", transform=RandAugment(num_ops=1000, magnitude=9, num_magnitude_bins=500) ) no1000m9nmb1000_data = OxfordIIITPet( root="data", transform=RandAugment(num_ops=1000, magnitude=9, num_magnitude_bins=1000) ) 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.xticks(ticks=[]) plt.yticks(ticks=[]) plt.tight_layout() plt.show() show_images1(data=origin_data, main_title="origin_data") print() show_images1(data=nmb10_data, main_title="nmb10_data") show_images1(data=nmb25_data, main_title="nmb25_data") show_images1(data=nmb50_data, main_title="nmb50_data") show_images1(data=nmb100_data, main_title="nmb100_data") show_images1(data=nmb500_data, main_title="nmb500_data") show_images1(data=nmb1000_data, main_title="nmb1000_data") print() show_images1(data=no1000nmb10_data, main_title="no1000nmb10_data") show_images1(data=no1000nmb25_data, main_title="no1000nmb25_data") show_images1(data=no1000nmb50_data, main_title="no1000nmb50_data") show_images1(data=no1000nmb100_data, main_title="no1000nmb100_data") show_images1(data=no1000nmb500_data, main_title="no1000nmb500_data") show_images1(data=no1000nmb1000_data, main_title="no1000nmb1000_data") print() show_images1(data=m9nmb10_data, main_title="m9nmb10_data") show_images1(data=m9nmb25_data, main_title="m9nmb25_data") show_images1(data=m9nmb50_data, main_title="m9nmb50_data") show_images1(data=m9nmb100_data, main_title="m9nmb100_data") show_images1(data=m9nmb500_data, main_title="m9nmb500_data") show_images1(data=m9nmb1000_data, main_title="m9nmb1000_data") print() show_images1(data=no1000m9nmb10_data, main_title="no1000m9nmb10_data") show_imag

*Memos:
-
My post explains RandAugment() about
num_ops
andfill
argument. -
My post explains RandAugment() about
magnitude
argument. - My post explains OxfordIIITPet().
RandAugment() can randomly augment an image as the alternative of AutoAugment() as shown below:
from torchvision.datasets import OxfordIIITPet
from torchvision.transforms.v2 import RandAugment
from torchvision.transforms.functional import InterpolationMode
origin_data = OxfordIIITPet(
root="data",
transform=None
)
nmb10_data = OxfordIIITPet( # `nmb` is num_magnitude_bins.
root="data",
transform=RandAugment(num_magnitude_bins=10)
)
nmb25_data = OxfordIIITPet(
root="data",
transform=RandAugment(num_magnitude_bins=25)
)
nmb50_data = OxfordIIITPet(
root="data",
transform=RandAugment(num_magnitude_bins=50)
)
nmb100_data = OxfordIIITPet(
root="data",
transform=RandAugment(num_magnitude_bins=100)
)
nmb500_data = OxfordIIITPet(
root="data",
transform=RandAugment(num_magnitude_bins=500)
)
nmb1000_data = OxfordIIITPet(
root="data",
transform=RandAugment(num_magnitude_bins=1000)
)
no1000nmb10_data = OxfordIIITPet( # `no` is num_ops.
root="data",
transform=RandAugment(num_ops=1000, num_magnitude_bins=10)
)
no1000nmb25_data = OxfordIIITPet(
root="data",
transform=RandAugment(num_ops=1000, num_magnitude_bins=25)
)
no1000nmb50_data = OxfordIIITPet(
root="data",
transform=RandAugment(num_ops=1000, num_magnitude_bins=50)
)
no1000nmb100_data = OxfordIIITPet(
root="data",
transform=RandAugment(num_ops=1000, num_magnitude_bins=100)
)
no1000nmb500_data = OxfordIIITPet(
root="data",
transform=RandAugment(num_ops=1000, num_magnitude_bins=500)
)
no1000nmb1000_data = OxfordIIITPet(
root="data",
transform=RandAugment(num_ops=1000, num_magnitude_bins=1000)
)
m9nmb10_data = OxfordIIITPet( # `m` is magnitude.
root="data",
transform=RandAugment(magnitude=9, num_magnitude_bins=10)
)
m9nmb25_data = OxfordIIITPet(
root="data",
transform=RandAugment(magnitude=9, num_magnitude_bins=25)
)
m9nmb50_data = OxfordIIITPet(
root="data",
transform=RandAugment(magnitude=9, num_magnitude_bins=50)
)
m9nmb100_data = OxfordIIITPet(
root="data",
transform=RandAugment(magnitude=9, num_magnitude_bins=100)
)
m9nmb500_data = OxfordIIITPet(
root="data",
transform=RandAugment(magnitude=9, num_magnitude_bins=500)
)
m9nmb1000_data = OxfordIIITPet(
root="data",
transform=RandAugment(magnitude=9, num_magnitude_bins=1000)
)
no1000m9nmb10_data = OxfordIIITPet(
root="data",
transform=RandAugment(num_ops=1000, magnitude=9, num_magnitude_bins=10)
)
no1000m9nmb25_data = OxfordIIITPet(
root="data",
transform=RandAugment(num_ops=1000, magnitude=9, num_magnitude_bins=25)
)
no1000m9nmb50_data = OxfordIIITPet(
root="data",
transform=RandAugment(num_ops=1000, magnitude=9, num_magnitude_bins=50)
)
no1000m9nmb100_data = OxfordIIITPet(
root="data",
transform=RandAugment(num_ops=1000, magnitude=9, num_magnitude_bins=100)
)
no1000m9nmb500_data = OxfordIIITPet(
root="data",
transform=RandAugment(num_ops=1000, magnitude=9, num_magnitude_bins=500)
)
no1000m9nmb1000_data = OxfordIIITPet(
root="data",
transform=RandAugment(num_ops=1000, magnitude=9, num_magnitude_bins=1000)
)
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.xticks(ticks=[])
plt.yticks(ticks=[])
plt.tight_layout()
plt.show()
show_images1(data=origin_data, main_title="origin_data")
print()
show_images1(data=nmb10_data, main_title="nmb10_data")
show_images1(data=nmb25_data, main_title="nmb25_data")
show_images1(data=nmb50_data, main_title="nmb50_data")
show_images1(data=nmb100_data, main_title="nmb100_data")
show_images1(data=nmb500_data, main_title="nmb500_data")
show_images1(data=nmb1000_data, main_title="nmb1000_data")
print()
show_images1(data=no1000nmb10_data, main_title="no1000nmb10_data")
show_images1(data=no1000nmb25_data, main_title="no1000nmb25_data")
show_images1(data=no1000nmb50_data, main_title="no1000nmb50_data")
show_images1(data=no1000nmb100_data, main_title="no1000nmb100_data")
show_images1(data=no1000nmb500_data, main_title="no1000nmb500_data")
show_images1(data=no1000nmb1000_data, main_title="no1000nmb1000_data")
print()
show_images1(data=m9nmb10_data, main_title="m9nmb10_data")
show_images1(data=m9nmb25_data, main_title="m9nmb25_data")
show_images1(data=m9nmb50_data, main_title="m9nmb50_data")
show_images1(data=m9nmb100_data, main_title="m9nmb100_data")
show_images1(data=m9nmb500_data, main_title="m9nmb500_data")
show_images1(data=m9nmb1000_data, main_title="m9nmb1000_data")
print()
show_images1(data=no1000m9nmb10_data, main_title="no1000m9nmb10_data")
show_images1(data=no1000m9nmb25_data, main_title="no1000m9nmb25_data")
show_images1(data=no1000m9nmb50_data, main_title="no1000m9nmb50_data")
show_images1(data=no1000m9nmb100_data, main_title="no1000m9nmb100_data")
show_images1(data=no1000m9nmb500_data, main_title="no1000m9nmb500_data")
show_images1(data=no1000m9nmb1000_data, main_title="no1000m9nmb1000_data")
# ↓ ↓ ↓ ↓ ↓ ↓ The code below is identical to the code above. ↓ ↓ ↓ ↓ ↓ ↓
def show_images2(data, main_title=None, no=2, m=9, nmb=31,
ip=InterpolationMode.NEAREST, f=None):
plt.figure(figsize=[10, 5])
plt.suptitle(t=main_title, y=0.8, fontsize=14)
if main_title != "origin_data":
for i, (im, _) in zip(range(1, 6), data):
plt.subplot(1, 5, i)
ra = RandAugment(num_ops=no, magnitude=m,
num_magnitude_bins=nmb,
interpolation=ip, fill=f)
plt.imshow(X=ra(im))
plt.xticks(ticks=[])
plt.yticks(ticks=[])
else:
for i, (im, _) in zip(range(1, 6), data):
plt.subplot(1, 5, i)
plt.imshow(X=im)
plt.xticks(ticks=[])
plt.yticks(ticks=[])
plt.tight_layout()
plt.show()
show_images2(data=origin_data, main_title="origin_data")
print()
show_images2(data=origin_data, main_title="nmb10_data", nmb=10)
show_images2(data=origin_data, main_title="nmb25_data", nmb=25)
show_images2(data=origin_data, main_title="nmb50_data", nmb=50)
show_images2(data=origin_data, main_title="nmb100_data", nmb=100)
show_images2(data=origin_data, main_title="nmb500_data", nmb=500)
show_images2(data=origin_data, main_title="nmb1000_data", nmb=1000)
print()
show_images2(data=origin_data, main_title="no1000nmb10_data", no=1000,
nmb=10)
show_images2(data=origin_data, main_title="no1000nmb25_data", no=1000,
nmb=25)
show_images2(data=origin_data, main_title="no1000nmb50_data", no=1000,
nmb=50)
show_images2(data=origin_data, main_title="no1000nmb100_data", no=1000,
nmb=100)
show_images2(data=origin_data, main_title="no1000nmb500_data", no=1000,
nmb=500)
show_images2(data=origin_data, main_title="no1000nmb1000_data", no=1000,
nmb=1000)
print()
show_images2(data=origin_data, main_title="m9nmb10_data", m=9, nmb=10)
show_images2(data=origin_data, main_title="m9nmb25_data", m=9, nmb=25)
show_images2(data=origin_data, main_title="m9nmb50_data", m=9, nmb=50)
show_images2(data=origin_data, main_title="m9nmb100_data", m=9, nmb=100)
show_images2(data=origin_data, main_title="m9nmb500_data", m=9, nmb=500)
show_images2(data=origin_data, main_title="m9nmb1000_data", m=9, nmb=1000)
print()
show_images2(data=origin_data, main_title="no1000m9nmb10_data", no=1000, m=9,
nmb=10)
show_images2(data=origin_data, main_title="no1000m9nmb25_data", no=1000, m=9,
nmb=25)
show_images2(data=origin_data, main_title="no1000m9nmb50_data", no=1000, m=9,
nmb=50)
show_images2(data=origin_data, main_title="no1000m9nmb100_data", no=1000, m=9,
nmb=100)
show_images2(data=origin_data, main_title="no1000m9nmb500_data", no=1000, m=9,
nmb=500)
show_images2(data=origin_data, main_title="no1000m9nmb1000_data",
no=1000, m=9, nmb=1000)