Heim > Backend-Entwicklung > Python-Tutorial > RandomRotation in PyTorch

RandomRotation in PyTorch

Susan Sarandon
Freigeben: 2024-12-29 02:47:11
Original
672 Leute haben es durchsucht

Kauf mir einen Kaffee☕

*Memos:

  • Mein Beitrag erklärt RandomHorizontalFlip().
  • Mein Beitrag erklärt RandomVerticalFlip().
  • Mein Beitrag erklärt OxfordIIITPet().

RandomRotation() kann null oder mehr Bilder drehen, wie unten gezeigt:

*Memos:

  • Das erste Argument für die Initialisierung ist Degrees(Required-Type:int, float oder tuple/list(int or float)): *Memos:
    • Ein einzelner Wert muss 0 <= x sein.
    • Ein Tupel oder eine Liste muss 1D mit 2 Elementen sein. *Das 1. Element muss kleiner oder gleich dem 2. Element sein.
  • Das 2. Argument für die Initialisierung ist Interpolation (Optional-Default:InterpolationMode.NEAREST-Type:InterpolationMode).
  • Das dritte Argument für die Initialisierung ist expand(Optional-Default:False-Type:bool).
  • Das 4. Argument für die Initialisierung ist center(Optional-Default:None-Type:tuple/list(int or float)). *Es muss das 1D mit 2 Elementen sein.
  • Das 5. Argument für die Initialisierung ist fill(Optional-Default:0-Type:int, float oder tuple/list(int or float)): *Memos:
    • Ein Tupel oder eine Liste muss 1D mit 3 Elementen sein.
  • Das 1. Argument ist img(Required-Type:PIL Image oder tensor/tuple/list(int oder float)): *Memos:
    • Es muss 2D oder 3D sein. Für 3D muss das tiefste D ein Element haben.
    • Verwenden Sie nicht img=.
  • Wird empfohlen, V2 gemäß V1 oder V2 zu verwenden? Welches soll ich verwenden?
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))
Nach dem Login kopieren

RandomRotation in PyTorch

RandomRotation in PyTorch

RandomRotation in PyTorch

RandomRotation in PyTorch

RandomRotation in PyTorch

RandomRotation in PyTorch

RandomRotation in PyTorch

Das obige ist der detaillierte Inhalt vonRandomRotation in PyTorch. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:dev.to
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage