Maison > développement back-end > Tutoriel Python > Redimensionner dans PyTorch

Redimensionner dans PyTorch

Mary-Kate Olsen
Libérer: 2025-01-19 22:12:10
original
938 Les gens l'ont consulté

Achetez-moi un café☕

*Mémos :

  • Mon message explique OxfordIIITPet().

Resize() peut redimensionner zéro ou plusieurs images comme indiqué ci-dessous :

*Mémos :

  • Le 1er argument pour l'initialisation est size(Required-Type:int ou tuple/list(int)) : *Mémos :
    • C'est [largeur, hauteur].
    • Il doit être 1 <= x.
    • Un tuple/liste doit être le 1D avec 1 ou 2 éléments.
    • Une seule valeur (int ou tuple/list(int`)) est appliquée au bord de largeur ou de hauteur d'une image plus petite, puis l'autre bord de largeur ou de hauteur plus grand est également redimensionné : *Mémos :
    • Si la largeur d'une image est inférieure à sa hauteur, c'est [taille, taille * largeur/hauteur].
    • Si la largeur d'une image est supérieure à sa hauteur, c'est [taille * largeur / hauteur, taille].
    • Si la largeur d'une image est égale à sa hauteur, c'est [taille, taille].
  • Le 2ème argument pour l'initialisation est l'interpolation (Optional-Default:InterpolationMode.BILINEAR-Type:InterpolationMode).
  • Le 3ème argument pour l'initialisation est max_size(Optional-Default:None-Type:int) : *Mémos :
    • Il n'est pris en charge que si la taille est une valeur unique (int ou tuple/list(int`)).
    • Une fois la taille appliquée, si le bord en largeur ou en hauteur d'une image plus grande la dépasse, elle est appliquée au bord en largeur ou en hauteur d'une image plus grande pour limiter la taille de l'image, puis le bord en largeur ou en hauteur de l'autre image plus petite devient également plus petit qu'auparavant.
  • Le 4ème argument pour l'initialisation est antialias(Optional-Default:True-Type:bool). *Même si vous définissez False, c'est toujours True si l'interpolation est InterpolationMode.BILINEAR ou InterpolationMode.BICUBIC.
  • Le 1er argument est img(Required-Type:PIL Image ou tensor(int, float, complexe ou bool)) : *Mémos :
    • Un tenseur doit être le tenseur 3D ou plus D d'un ou plusieurs éléments.
    • N'utilisez pas img=.
  • Il est recommandé d'utiliser la v2 selon la V1 ou la V2 ? Lequel dois-je utiliser ?.
from torchvision.datasets import OxfordIIITPet
from torchvision.transforms.v2 import Resize
from torchvision.transforms.functional import InterpolationMode

resize = Resize(size=100)
resize = Resize(size=100,
                interpolation=InterpolationMode.BILINEAR,
                max_size=None,
                antialias=True)
resize
# Resize(size=[100],
#        interpolation=InterpolationMode.BILINEAR,
#        antialias=True)

resize.size
# [100]

resize.interpolation
# 

print(resize.max_size)
# None

resize.antialias
# True

origin_data = OxfordIIITPet(
    root="data",
    transform=None
)

p1000_data = OxfordIIITPet(
    root="data",
    transform=Resize(size=1000)
    # transform=Resize(size=[1000])
)

p100_data = OxfordIIITPet(
    root="data",
    transform=Resize(size=100)
)

p50_data = OxfordIIITPet(
    root="data",
    transform=Resize(size=50)
)

p10_data = OxfordIIITPet(
    root="data",
    transform=Resize(size=10)
)

p100p180_data = OxfordIIITPet(
    root="data",
    transform=Resize(size=[100, 180])
)

p180p100_data = OxfordIIITPet(
    root="data",
    transform=Resize(size=[180, 100])
)

p100ms110_data = OxfordIIITPet(
    root="data",
    transform=Resize(size=100, max_size=110)
)

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.tight_layout()
    plt.show()

show_images1(data=origin_data, main_title="origin_data")
show_images1(data=p1000_data, main_title="p1000_data")
show_images1(data=p100_data, main_title="p100_data")
show_images1(data=p50_data, main_title="p50_data")
show_images1(data=p10_data, main_title="p10_data")
print()
show_images1(data=origin_data, main_title="origin_data")
show_images1(data=p100p180_data, main_title="p100p180_data")
show_images1(data=p180p100_data, main_title="p180p100_data")
print()
show_images1(data=p100_data, main_title="p100_data")
show_images1(data=p100ms110_data, main_title='p100ms110_data')

# ↓ ↓ ↓ ↓ ↓ ↓ The code below is identical to the code above. ↓ ↓ ↓ ↓ ↓ ↓
def show_images2(data, main_title=None, s=None, ms=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)
        if not s:
            s = im.size
        resize = Resize(size=s, max_size=ms) # Here
        plt.imshow(X=resize(im)) # Here
    plt.tight_layout()
    plt.show()

show_images2(data=origin_data, main_title="origin_data")
show_images2(data=origin_data, main_title="p1000_data", s=1000)
show_images2(data=origin_data, main_title="p100_data", s=100)
show_images2(data=origin_data, main_title="p50_data", s=50)
show_images2(data=origin_data, main_title="p10_data", s=10)
print()
show_images2(data=origin_data, main_title="origin_data")
show_images2(data=origin_data, main_title="p100p180_data", s=[100, 180])
show_images2(data=origin_data, main_title="p180p100_data", s=[180, 100])
print()
show_images2(data=origin_data, main_title="p100_data", s=100)
show_images2(data=origin_data, main_title="p100ms110_data", s=100, ms=110)




Image description

Image description

Image description

Image description

Image description


Image description

Image description

Image description


Image description

Image description

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:dev.to
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal