请我喝杯咖啡☕
*备忘录:
RandomRotation() 可以旋转零个或多个图像,如下所示:
*备忘录:
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")
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))
以上是PyTorch 中的随机旋转的详细内容。更多信息请关注PHP中文网其他相关文章!