PyTorch의 꽃

Patricia Arquette
Patricia Arquette원래의
2024-12-16 16:40:11374검색

커피 한잔 사주세요😄

*제 포스팅은 Oxford 102 Flower에 대한 설명입니다.

Flowers102()는 아래와 같이 Oxford 102 Flower 데이터세트를 사용할 수 있습니다.

*메모:

  • 첫 번째 인수는 루트(필수 유형:str 또는 pathlib.Path)입니다. *절대경로, 상대경로 모두 가능합니다.
  • 두 번째 인수는 분할(Optional-Default:"train"-Type:str)입니다. *"train"(1,020 이미지), "val"(1,020 이미지) 또는 "test"(6,149 이미지)를 설정할 수 있습니다.
  • 세 번째 인수는 변환(Optional-Default:None-Type:callable)입니다.
  • 네 번째 인수는 target_transform(Optional-Default:None-Type:callable)입니다.
  • 다섯 번째 인수는 download(Optional-Default:False-Type:bool)입니다. *메모:
    • True인 경우 데이터 세트가 인터넷에서 다운로드되어 루트에 추출(압축 해제)됩니다.
    • True이고 데이터세트가 이미 다운로드된 경우 추출됩니다.
    • True이고 데이터 세트가 이미 다운로드되어 추출된 경우 아무 일도 일어나지 않습니다.
    • 데이터 세트가 이미 다운로드되어 추출된 경우 더 빠르므로 False여야 합니다.
    • 여기에서 데이터세트(imagelabels.mat 및 setid.matff가 포함된 102flowers.tgz)를 data/flowers-102/로 수동으로 다운로드하고 추출할 수 있습니다.
  • 트레인 및 검증 이미지 인덱스에 대한 카테고리(클래스)의 레이블에 대해 0은 0~9, 1은 10~19, 2는 20~29, 3은 30~39, 4는 40~49, 5는 50~59, 6은 60~69, 7은 70~79, 8은 80~89, 9는 90~99 등
  • 테스트 이미지 인덱스에 대한 카테고리(클래스)의 라벨에 대해 0은 0~19, 1은 20~59, 2는 60~79, 3은 80~115, 4는 116~160, 5는 161~185, 6은 186~205, 7은 206~270, 8은 271~296, 9는 297~321 등입니다.
from torchvision.datasets import Flowers102

train_data = Flowers102(
    root="data"
)

train_data = Flowers102(
    root="data",
    split="train",
    transform=None,
    target_transform=None,
    download=False
)

val_data = Flowers102(
    root="data",
    split="val"
)

test_data = Flowers102(
    root="data",
    split="test"
)

len(train_data), len(val_data), len(test_data)
# (1020, 1020, 6149)

train_data
# Dataset Flowers102
#     Number of datapoints: 1020
#     Root location: data
#     split=train

train_data.root
# 'data'

train_data._split
# 'train'

print(train_data.transform)
# None

print(train_data.target_transform)
# None

train_data.download
# <bound method Flowers102.download of Dataset Flowers102
#     Number of datapoints: 1020
#     Root location: data
#     split=train>

len(set(train_data._labels)), train_data._labels
# (102,
#  [0, 0, 0, ..., 1, ..., 2, ..., 3, ..., 4, ..., 5, ..., 6, ..., 101])

train_data[0]
# (<PIL.Image.Image image mode=RGB size=754x500>, 0)

train_data[1]
# (<PIL.Image.Image image mode=RGB size=624x500>, 0)

train_data[2]
# (<PIL.Image.Image image mode=RGB size=667x500>, 0)

train_data[10]
# (<PIL.Image.Image image mode=RGB size=500x682>, 1)

train_data[20]
# (<PIL.Image.Image image mode=RGB size=667x500>, 2)

val_data[0]
# (<PIL.Image.Image image mode=RGB size=606x500>, 0)

val_data[1]
# (<PIL.Image.Image image mode=RGB size=667x500>, 0)

val_data[2]
# (<PIL.Image.Image image mode=RGB size=500x628>, 0)

val_data[10]
# (<PIL.Image.Image image mode=RGB size=500x766>, 1)

val_data[20]
# (<PIL.Image.Image image mode=RGB size=624x500>, 2)

test_data[0]
# (<PIL.Image.Image image mode=RGB size=523x500>, 0)

test_data[1]
# (<PIL.Image.Image image mode=RGB size=666x500>, 0)

test_data[2]
# (<PIL.Image.Image image mode=RGB size=595x500>, 0)

test_data[20]
# (<PIL.Image.Image image mode=RGB size=500x578>, 1)

test_data[60]
# (<PIL.Image.Image image mode=RGB size=500x625>, 2)

import matplotlib.pyplot as plt

def show_images(data, ims, main_title=None):
    plt.figure(figsize=(10, 5))
    plt.suptitle(t=main_title, y=1.0, fontsize=14)
    for i, j in enumerate(ims, start=1):
        plt.subplot(2, 5, i)
        im, lab = data[j]
        plt.imshow(X=im)
        plt.title(label=lab)
    plt.tight_layout()
    plt.show()

train_ims = (0, 1, 2, 10, 20, 30, 40, 50, 60, 70)
val_ims = (0, 1, 2, 10, 20, 30, 40, 50, 60, 70)
test_ims = (0, 1, 2, 20, 60, 80, 116, 161, 186, 206)

show_images(data=train_data, ims=train_ims, main_title="train_data")
show_images(data=train_data, ims=val_ims, main_title="val_data")
show_images(data=test_data, ims=test_ims, main_title="test_data")

Flowers in PyTorch

Flowers in PyTorch

Flowers in PyTorch

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

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.