🔧 RandAugment in PyTorch (3)
Nachrichtenbereich: 🔧 Programmierung
🔗 Quelle: dev.to
*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)
🔧 RandAugment in PyTorch (1)
📈 36.57 Punkte
🔧 Programmierung
🔧 RandAugment in PyTorch (2)
📈 36.57 Punkte
🔧 Programmierung
🔧 RandAugment in PyTorch
📈 36.57 Punkte
🔧 Programmierung
🔧 RandAugment in PyTorch (2)
📈 36.57 Punkte
🔧 Programmierung
🔧 RandAugment in PyTorch (3)
📈 36.57 Punkte
🔧 Programmierung
🔧 RandAugment in PyTorch (4)
📈 36.57 Punkte
🔧 Programmierung
🔧 RandAugment in PyTorch (1)
📈 36.57 Punkte
🔧 Programmierung
🔧 RandAugment in PyTorch (1)
📈 36.57 Punkte
🔧 Programmierung
🔧 RandAugment in PyTorch (2)
📈 36.57 Punkte
🔧 Programmierung
🔧 RandAugment in PyTorch (3)
📈 36.57 Punkte
🔧 Programmierung
🔧 RandAugment in PyTorch (4)
📈 36.57 Punkte
🔧 Programmierung
🔧 RandAugment in PyTorch (1)
📈 36.57 Punkte
🔧 Programmierung
🔧 RandAugment in PyTorch (2)
📈 36.57 Punkte
🔧 Programmierung
🔧 RandAugment in PyTorch (3)
📈 36.57 Punkte
🔧 Programmierung
🔧 PyTorch on Azure: Full support for PyTorch 1.2
📈 22.21 Punkte
🔧 Programmierung
🔧 PyTorch Day 02: PyTorch Tensors Basics
📈 22.21 Punkte
🔧 Programmierung
🔧 PyTorch Day 02: PyTorch Tensors Basics
📈 22.21 Punkte
🔧 Programmierung
🔧 ToDtype in PyTorch
📈 11.11 Punkte
🔧 Programmierung
🔧 AugMix in PyTorch (15)
📈 11.11 Punkte
🔧 Programmierung
🔧 ElasticTransform in PyTorch (2)
📈 11.11 Punkte
🔧 Programmierung
🔧 RandomVerticalFlip in PyTorch
📈 11.11 Punkte
🔧 Programmierung
🔧 RandomAffine in PyTorch (4)
📈 11.11 Punkte
🔧 Programmierung
🔧 RandomResizedCrop in PyTorch (3)
📈 11.11 Punkte
🔧 Programmierung
🔧 RandomCrop in PyTorch
📈 11.11 Punkte
🔧 Programmierung
🔧 CocoDetection in PyTorch (1)
📈 11.11 Punkte
🔧 Programmierung
🔧 CelebA in PyTorch
📈 11.11 Punkte
🔧 Programmierung
🔧 index_select() in PyTorch
📈 11.11 Punkte
🔧 Programmierung
🔧 log2() and log10() in PyTorch
📈 11.11 Punkte
🔧 Programmierung