DEV Community

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

Posted on

AugMix in PyTorch (5)

Buy Me a Coffee

*Memos:

AugMix() can randomly do AugMix to an image as shown below. *It's about mixture_width 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
)

mw0_data = OxfordIIITPet( # `mw` is mixture_width.
    root="data",
    transform=AugMix(mixture_width=0)
)

mw1_data = OxfordIIITPet(
    root="data",
    transform=AugMix(mixture_width=1)
)

mw2_data = OxfordIIITPet(
    root="data",
    transform=AugMix(mixture_width=2)
)

mw5_data = OxfordIIITPet(
    root="data",
    transform=AugMix(mixture_width=5)
)

mw10_data = OxfordIIITPet(
    root="data",
    transform=AugMix(mixture_width=10)
)

mw25_data = OxfordIIITPet(
    root="data",
    transform=AugMix(mixture_width=25)
)

mw50_data = OxfordIIITPet(
    root="data",
    transform=AugMix(mixture_width=50)
)

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=mw0_data, main_title="mw0_data")
show_images1(data=mw1_data, main_title="mw1_data")
show_images1(data=mw2_data, main_title="mw2_data")
show_images1(data=mw5_data, main_title="mw5_data")
show_images1(data=mw10_data, main_title="mw10_data")
show_images1(data=mw25_data, main_title="mw25_data")
show_images1(data=mw50_data, main_title="mw50_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="mw0_data", mw=0)
show_images2(data=origin_data, main_title="mw1_data", mw=1)
show_images2(data=origin_data, main_title="mw2_data", mw=2)
show_images2(data=origin_data, main_title="mw5_data", mw=5)
show_images2(data=origin_data, main_title="mw10_data", mw=10)
show_images2(data=origin_data, main_title="mw25_data", mw=25)
show_images2(data=origin_data, main_title="mw50_data", mw=50)
Enter fullscreen mode Exit fullscreen mode

Image description


Image description

Image description

Image description

Image description

Image description

Image description

Image description

Hot sauce if you're wrong - web dev trivia for staff engineers

Hot sauce if you're wrong · web dev trivia for staff engineers (Chris vs Jeremy, Leet Heat S1.E4)

  • Shipping Fast: Test your knowledge of deployment strategies and techniques
  • Authentication: Prove you know your OAuth from your JWT
  • CSS: Demonstrate your styling expertise under pressure
  • Acronyms: Decode the alphabet soup of web development
  • Accessibility: Show your commitment to building for everyone

Contestants must answer rapid-fire questions across the full stack of modern web development. Get it right, earn points. Get it wrong? The spice level goes up!

Watch Video 🌶️🔥

Top comments (0)

A Workflow Copilot. Tailored to You.

Pieces.app image

Our desktop app, with its intelligent copilot, streamlines coding by generating snippets, extracting code from screenshots, and accelerating problem-solving.

Read the docs

👋 Kindness is contagious

If you found this post helpful, please leave a ❤️ or a friendly comment below!

Okay