Buy Me a Coffee☕
*Memos:
RandomRotation() can rotate zero or more images as shown below:
*Memos:
from torchvision.datasets import OxfordIIITPet from torchvision.transforms.v2 import RandomRotation from torchvision.transforms.functional import InterpolationMode randomrotation = RandomRotation(degrees=90.0) randomrotation = RandomRotation(degrees=[-90.0, 90.0], interpolation=InterpolationMode.NEAREST, expand=False, center=None, fill=0) randomrotation # RandomRotation(degrees=[-90.0, 90.0], # interpolation=InterpolationMode.NEAREST, # expand=False, # fill=0) randomrotation.degrees # [-90.0, 90.0] randomrotation.interpolation # <InterpolationMode.NEAREST: 'nearest'> randomrotation.expand # False print(randomrotation.center) # None randomrotation.fill # 0 origin_data = OxfordIIITPet( root="data", transform=None ) p90_data = OxfordIIITPet( # `p` is plus. root="data", transform=RandomRotation(degrees=90.0) ) p90p90_data = OxfordIIITPet( root="data", transform=RandomRotation(degrees=(90.0, 90.0)) ) m90m90expand_data = OxfordIIITPet( # `m` is minus. root="data", transform=RandomRotation(degrees=(-90.0, -90.0), expand=True) ) p180p180offcenter_data = OxfordIIITPet( root="data", transform=RandomRotation(degrees=(180.0, 180.0), center=(270, 200)) ) m45m45fillgray_data = OxfordIIITPet( root="data", transform=RandomRotation(degrees=(-45.0, -45.0), fill=150) ) p135p135fillpurple_data = OxfordIIITPet( root="data", transform=RandomRotation(degrees=(135.0, 135.0), fill=(160, 32, 240)) ) import matplotlib.pyplot as plt def show_images(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_images(data=origin_data, main_title="origin_data") show_images(data=p90_data, main_title="p90_data") show_images(data=p90p90_data, main_title="p90p90_data") show_images(data=m90m90expand_data, main_title="m90m90expand_data") show_images(data=p180p180offcenter_data, main_title="p180p180offcenter_data") show_images(data=m45m45fillgray_data, main_title="m45m45fillgray_data") show_images(data=p135p135fillpurple_data, main_title="p135p135fillpurple_data") <p><img src="https://img.php.cn/upload/article/000/000/000/173541163355044.jpg" alt="RandomRotation in PyTorch"></p> <p><img src="https://img.php.cn/upload/article/000/000/000/173541163528488.jpg" alt="RandomRotation in PyTorch"></p> <p><img src="https://img.php.cn/upload/article/000/000/000/173541163621429.jpg" alt="RandomRotation in PyTorch"></p> <p><img src="https://img.php.cn/upload/article/000/000/000/173541163867638.jpg" alt="RandomRotation in PyTorch"></p> <p><img src="https://img.php.cn/upload/article/000/000/000/173541164089048.jpg" alt="RandomRotation in PyTorch"></p> <p><img src="https://img.php.cn/upload/article/000/000/000/173541164120249.jpg" alt="RandomRotation in PyTorch"></p> <p><img src="https://img.php.cn/upload/article/000/000/000/173541164382128.jpg" alt="RandomRotation in PyTorch"><br> </p> <pre class="brush:php;toolbar:false">from torchvision.datasets import OxfordIIITPet from torchvision.transforms.v2 import RandomRotation my_data = OxfordIIITPet( root="data", transform=None ) import matplotlib.pyplot as plt def show_images(data, main_title=None, d=0.0, e=False, c=None, f=0): 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) rr = RandomRotation(degrees=d, expand=e, center=c, fill=f) # Here plt.imshow(X=rr(im)) # Here plt.xticks(ticks=[]) plt.yticks(ticks=[]) plt.tight_layout() plt.show() show_images(data=my_data, main_title="my_data") show_images(data=my_data, main_title="p90_data", d=90.0) show_images(data=my_data, main_title="p90p90_data", d=(90.0, 90.0)) show_images(data=my_data, main_title="m90m90expand_data", d=(-90, -90)) show_images(data=my_data, main_title="p180p180offcenter_data", d=(180.0, 180.0), c=(270, 200)) show_images(data=my_data, main_title="m45m45fillgray_data", d=(-45.0, -45.0), f=150) show_images(data=my_data, main_title="p135p135fillpurple_data", d=(135.0, 135.0), f=(160, 32, 240))
The above is the detailed content of RandomRotation in PyTorch. For more information, please follow other related articles on the PHP Chinese website!