Rumah > pembangunan bahagian belakang > Tutorial Python > CenterCrop dalam PyTorch

CenterCrop dalam PyTorch

Susan Sarandon
Lepaskan: 2025-01-20 12:15:13
asal
317 orang telah melayarinya

Beli Saya Kopi☕

*Memo:

  • Siaran saya menerangkan OxfordIIITPet().

CenterCrop() boleh memangkas sifar atau lebih imej, berpusat padanya seperti yang ditunjukkan di bawah:

*Memo:

  • Argumen pertama untuk pemulaan ialah size(Required-Type:int, float atau tuple/list(int or float) atau size()): *Memo:
    • Ia adalah [tinggi, lebar].
    • Ia mestilah 0 <= x.
    • Tuple/senarai mestilah 1D dengan 1 atau 2 elemen.
    • Nilai tunggal(int, float atau tuple/list(int atau float) bermaksud [saiz, saiz].
  • Argumen pertama ialah img(Required-Type:PIL Image or tensor(int, float, complex or bool)): *Memo:
    • Tensor mestilah 2D atau lebih D bagi sifar atau lebih elemen.
    • Jangan gunakan img=.
  • v2 disyorkan untuk digunakan mengikut V1 atau V2? Mana satu patut saya guna?.
from torchvision.datasets import OxfordIIITPet
from torchvision.transforms.v2 import CenterCrop

centercrop = CenterCrop(size=100)

centercrop
# CenterCrop(size=(100, 100))

centercrop.size
# (100, 100)

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

p600_data = OxfordIIITPet(
    root="data",
    transform=CenterCrop(size=600)
    # transform=CenterCrop(size=[600])
    # transform=CenterCrop(size=[600, 600])
)

p400_data = OxfordIIITPet(
    root="data",
    transform=CenterCrop(size=400)
)

p200_data = OxfordIIITPet(
    root="data",
    transform=CenterCrop(size=200)
)

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

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

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

p200p300_data = OxfordIIITPet(
    root="data",
    transform=CenterCrop(size=[200, 300])
)

p300p200_data = OxfordIIITPet(
    root="data",
    transform=CenterCrop(size=[300, 200])
)

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=p600_data, main_title="p600_data")
show_images1(data=p400_data, main_title="p400_data")
show_images1(data=p200_data, main_title="p200_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=p200p300_data, main_title="p200p300_data")
show_images1(data=p300p200_data, main_title="p300p200_data")

# ↓ ↓ ↓ ↓ ↓ ↓ The code below is identical to the code above. ↓ ↓ ↓ ↓ ↓ ↓
def show_images2(data, main_title=None, s=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[1], im.size[0]]
        cc = CenterCrop(size=s) # Here
        plt.imshow(X=cc(im)) # Here
    plt.tight_layout()
    plt.show()

show_images2(data=origin_data, main_title="origin_data")
show_images2(data=origin_data, main_title="p600_data", s=600)
show_images2(data=origin_data, main_title="p400_data", s=400)
show_images2(data=origin_data, main_title="p200_data", s=200)
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="p200p300_data", s=[200, 300])
show_images2(data=origin_data, main_title="p300p200_data", s=[300, 200])
Salin selepas log masuk

Image description

Image description

Image description

Image description

Image description

Image description

Image description


Image description

Image description

Image description

Atas ialah kandungan terperinci CenterCrop dalam PyTorch. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:dev.to
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan