首頁 >後端開發 >Python教學 >PyTorch 中的花朵

PyTorch 中的花朵

Patricia Arquette
Patricia Arquette原創
2024-12-16 16:40:11372瀏覽

請我喝杯咖啡☕

*我的貼文解釋了牛津 102 花。

Flowers102()可以使用Oxford 102 Flower資料集,如下所示:

*備忘錄:

  • 第一個參數是 root(必要類型:str 或 pathlib.Path)。 *絕對或相對路徑都是可能的。
  • 第二個參數是 split(可選-預設:"train"-類型:str)。 *可以設定「train」(1,020張圖片)、「val」(1,020張圖片)或「test」(6,149張圖片)。
  • 第三個參數是transform(Optional-Default:None-Type:callable)。
  • 第四個參數是 target_transform(Optional-Default:None-Type:callable)。
  • 第五個參數是 download(可選-預設:False-類型:bool): *備註:
    • 如果為 True,則從網路下載資料集並解壓縮(解壓縮)到根目錄。
    • 如果為 True 並且資料集已下載,則將其提取。
    • 如果為 True 並且資料集已下載並提取,則不會發生任何事情。
    • 如果資料集已經下載並提取,則應該為 False,因為它速度更快。
    • 您可以從此處手動下載並提取資料集(102flowers.tgz 以及 imagelabels.mat 和 setid.matff 到 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