DEV Community

Super Kai (Kazuya Ito)
Super Kai (Kazuya Ito)

Posted on • Edited on

1

AugMix in PyTorch (11)

Buy Me a Coffee

*Memos:

AugMix() can randomly do AugMix to an image as shown below. *It's about alpha argument (1):

from torchvision.datasets import OxfordIIITPet
from torchvision.transforms.v2 import AugMix
from torchvision.transforms.functional import InterpolationMode

origin_data = OxfordIIITPet(
    root="data",
    transform=None
)

a0_data = OxfordIIITPet( # `a` is alpha.
    root="data",
    transform=AugMix(alpha=0.0)
)

a1_data = OxfordIIITPet(
    root="data",
    transform=AugMix(alpha=1.0)
)

a2_data = OxfordIIITPet(
    root="data",
    transform=AugMix(alpha=2.0)
)

a5_data = OxfordIIITPet(
    root="data",
    transform=AugMix(alpha=5.0)
)

a10_data = OxfordIIITPet(
    root="data",
    transform=AugMix(alpha=10.0)
)

a25_data = OxfordIIITPet(
    root="data",
    transform=AugMix(alpha=25.0)
)

a50_data = OxfordIIITPet(
    root="data",
    transform=AugMix(alpha=50.0)
)

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=a0_data, main_title="a0_data")
show_images1(data=a1_data, main_title="a1_data")
show_images1(data=a2_data, main_title="a2_data")
show_images1(data=a5_data, main_title="a5_data")
show_images1(data=a10_data, main_title="a10_data")
show_images1(data=a25_data, main_title="a25_data")
show_images1(data=a50_data, main_title="a50_data")

# ↓ ↓ ↓ ↓ ↓ ↓ The code below is identical to the code above. ↓ ↓ ↓ ↓ ↓ ↓
def show_images2(data, main_title=None, s=3, mw=3, cd=-1, a=1.0,
                 ao=True, ip=InterpolationMode.BILINEAR, 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)
            am = AugMix(severity=s, mixture_width=mw, chain_depth=cd,
                        alpha=a, all_ops=ao, interpolation=ip, fill=f)
            plt.imshow(X=am(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="a0_data", a=0.0)
show_images2(data=origin_data, main_title="a1_data", a=1.0)
show_images2(data=origin_data, main_title="a2_data", a=2.0)
show_images2(data=origin_data, main_title="a5_data", a=5.0)
show_images2(data=origin_data, main_title="a10_data", a=10.0)
show_images2(data=origin_data, main_title="a25_data", a=25.0)
show_images2(data=origin_data, main_title="a50_data", a=50.0)
Enter fullscreen mode Exit fullscreen mode

Image description


Image description

Image description

Image description

Image description

Image description

Image description

Image description

AWS Q Developer image

Your AI Code Assistant

Automate your code reviews. Catch bugs before your coworkers. Fix security issues in your code. Built to handle large projects, Amazon Q Developer works alongside you from idea to production code.

Get started free in your IDE

Top comments (0)

Image of DataStax

AI Agents Made Easy with Langflow

Connect models, vector stores, memory and other AI building blocks with the click of a button to build and deploy AI-powered agents.

Get started for free

👋 Kindness is contagious

DEV shines when you're signed in, unlocking a customized experience with features like dark mode!

Okay