> 백엔드 개발 > 파이썬 튜토리얼 > PyTorch에서 크기 조정

PyTorch에서 크기 조정

Mary-Kate Olsen
풀어 주다: 2025-01-19 22:12:10
원래의
936명이 탐색했습니다.

커피 한잔 사주세요😄

*메모:

  • 내 게시물에는 OxfordIIITPet()에 대한 설명이 나와 있습니다.

Resize()는 아래와 같이 0개 이상의 이미지 크기를 조정할 수 있습니다.

*메모:

  • 초기화를 위한 첫 번째 인수는 size(Required-Type:int 또는 tuple/list(int))입니다. *메모:
    • [가로,세로] 입니다.
    • 1
    • 튜플/리스트는 요소가 1개 또는 2개 있는 1D여야 합니다.
    • 단일 값(int 또는 tuple/list(int`))이 더 작은 이미지의 너비 또는 높이 가장자리에 적용된 다음 더 큰 다른 너비 또는 높이 가장자리의 크기도 조정됩니다. *메모:
    • 이미지 너비가 높이보다 작은 경우 [크기, 크기 * 너비 / 높이]입니다.
    • 이미지 너비가 높이보다 큰 경우 [크기 * 너비 / 높이, 크기]입니다.
    • 이미지 너비와 높이가 같으면 [크기, 크기]입니다.
  • 초기화를 위한 두 번째 인수는 보간(Optional-Default:InterpolationMode.BILINEAR-Type:InterpolationMode)입니다.
  • 초기화를 위한 세 번째 인수는 max_size(Optional-Default:None-Type:int)입니다. *메모:
    • 크기가 단일 값(int 또는 tuple/list(int`))인 경우에만 지원됩니다.
    • 큰 이미지의 너비 또는 높이 가장자리가 이를 초과하는 경우 크기를 적용한 후 더 큰 이미지의 너비 또는 높이 가장자리에 적용하여 이미지 크기를 제한하고, 다른 작은 이미지의 너비 또는 높이 가장자리도 이전보다 작아집니다.
  • 초기화를 위한 네 번째 인수는 antialias(Optional-Default:True-Type:bool)입니다. *False로 설정하더라도 보간이 InterpolationMode.BILINEAR 또는 InterpolationMode.BICUBIC이면 항상 True입니다.
  • 첫 번째 인수는 img(필수 유형:PIL 이미지 또는 텐서(int, float, complex 또는 bool))입니다. *메모:
    • 텐서는 하나 이상의 요소로 구성된 3D 이상의 D 텐서여야 합니다.
    • img=을 사용하지 마세요.
  • v2는 V1 또는 V2에 따라 사용하는 것이 좋습니다? 어느 것을 사용해야 합니까?.
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
# <InterpolationMode.BILINEAR: 'bilinear'>

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

위 내용은 PyTorch에서 크기 조정의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:dev.to
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿