RandAugment in PyTorch (4)

Buy Me a Coffee☕ *Memos: My post explains RandAugment() about no arguments and fill argument. My post explains RandAugment() about num_ops and fill argument. My post explains RandAugment() about magnitude and fill argument. RandAugment() can randomly augment an image as shown below. *It's about num_magnitude_bins and fill argument: 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) ) nmb10fgray_data = OxfordIIITPet( # `f` is fill. root="data", transform=RandAugment(num_magnitude_bins=10, fill=150) # transform=RandAugment(num_magnitude_bins=10, fill=[150]) ) nmb10fpurple_data = OxfordIIITPet( root="data", transform=RandAugment(num_magnitude_bins=10, fill=[160, 32, 240]) ) 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=

Mar 14, 2025 - 07:06
 0
RandAugment in PyTorch (4)

Buy Me a Coffee

*Memos:

RandAugment() can randomly augment an image as shown below. *It's about num_magnitude_bins and fill argument:

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)
)

nmb10fgray_data = OxfordIIITPet( # `f` is fill.
    root="data",
    transform=RandAugment(num_magnitude_bins=10, fill=150)
    # transform=RandAugment(num_magnitude_bins=10, fill=[150])
)

nmb10fpurple_data = OxfordIIITPet(
    root="data",
    transform=RandAugment(num_magnitude_bins=10, fill=[160, 32, 240])
)

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")
print()
show_images1(data=nmb10fgray_data, main_title="nmb10fgray_data")
show_images1(data=nmb10fpurple_data, main_title="nmb10fpurple_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)
print()
show_images2(data=origin_data, main_title="nmb10fgray_data", nmb=10, f=150)
show_images2(data=origin_data, main_title="nmb10fpurple_data", nmb=10,
             f=[160, 32, 240])

Image description

Image description

Image description

Image description

Image description

Image description

Image description

Image description

Image description

Image description

Image description

Image description

Image description

Image description

Image description

Image description

Image description

Image description

Image description

Image description

Image description

Image description

Image description

Image description

Image description

Image description

Image description