Fleurs dans PyTorch

Patricia Arquette
Patricia Arquetteoriginal
2024-12-16 16:40:11374parcourir

Achetez-moi un café☕

*Mon message explique Oxford 102 Flower.

Flowers102() peut utiliser l'ensemble de données Oxford 102 Flower comme indiqué ci-dessous :

*Mémos :

  • Le 1er argument est root (Required-Type:str ou pathlib.Path). *Un chemin absolu ou relatif est possible.
  • Le 2ème argument est split(Optional-Default:"train"-Type:str). *"train" (1 020 images), "val" (1 020 images) ou "test" (6 149 images) peuvent y être définis.
  • Le 3ème argument est transform(Optional-Default:None-Type:callable).
  • Le 4ème argument est target_transform(Optional-Default:None-Type:callable).
  • Le 5ème argument est download(Optional-Default:False-Type:bool) : *Mémos :
    • Si c'est vrai, l'ensemble de données est téléchargé depuis Internet et extrait (décompressé) à la racine.
    • Si c'est Vrai et que l'ensemble de données est déjà téléchargé, il est extrait.
    • Si c'est vrai et que l'ensemble de données est déjà téléchargé et extrait, rien ne se passe.
    • Il devrait être faux si l'ensemble de données est déjà téléchargé et extrait car il est plus rapide.
    • Vous pouvez télécharger et extraire manuellement l'ensemble de données (102flowers.tgz avec imagelabels.mat et setid.matff d'ici vers data/flowers-102/.
  • À propos de l'étiquette des catégories (classes) pour les indices de train et d'image de validation, 0 est 0 ~ 9, 1 est 10 ~ 19, 2 est 20 ~ 29, 3 est 30 ~ 39, 4 est 40 ~ 49, 5 est 50 ~ 59, 6 est 60 ~ 69, 7 est 70 ~ 79, 8 est 80 ~ 89, 9 est 90~99, etc.
  • À propos de l'étiquette des catégories (classes) pour les indices d'image de test, 0 est 0 ~ 19, 1 est 20 ~ 59, 2 est 60 ~ 79, 3 est 80 ~ 115, 4 est 116 ~ 160, 5 est 161 ~ 185, 6 est 186 ~ 205, 7 est 206 ~ 270, 8 est 271~296, 9 est 297~321, etc.
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

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!

Déclaration:
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