Heim > Backend-Entwicklung > Python-Tutorial > ImageNet in PyTorch

ImageNet in PyTorch

Barbara Streisand
Freigeben: 2025-01-04 22:25:40
Original
488 Leute haben es durchsucht

Kauf mir einen Kaffee☕

*Mein Beitrag erklärt ImageNet.

ImageNet() kann den ImageNet-Datensatz wie unten gezeigt verwenden:

*Memos:

  • Das 1. Argument ist root(Required-Type:str oder pathlib.Path). *Ein absoluter oder relativer Pfad ist möglich.
  • Das 2. Argument ist geteilt(Optional-Default:"train"-Type:str): *Memos:
    • Es kann „train“ (1.281.167 Bilder) oder „val“ (50.000 Bilder) eingestellt werden.
    • „test“ (100.000 Bilder) wird nicht unterstützt, daher habe ich die Funktion auf GitHub angefordert.
  • Es gibt ein Transformationsargument (Optional-Default:None-Type:callable). *transform= muss verwendet werden.
  • Es gibt das Argument target_transform (Optional-Default:None-Type:callable). – Es gibt ein Transformationsargument (Optional-Default:None-Type:callable). *target_transform= muss verwendet werden.
  • Es gibt ein Loader-Argument (Optional-Default:torchvision.datasets.folder.default_loader-Type:callable). *loader= muss verwendet werden.
  • Sie müssen den Datensatz (ILSVRC2012_devkit_t12.tar.gz, ILSVRC2012_img_train.tar und ILSVRC2012_img_val.tar) manuell nach data/ herunterladen und dann ImageNet() ausführen, um den Datensatz zu extrahieren und zu laden.
  • Über die Beschriftung der Klassen für den Zug- bzw. Validierungsbildindex, Schleie&Tinca tinca(0) sind 0~1299 und 0~49, Goldfisch &Carassius auratus(1) sind 1300~2599 und 50~99, Großer Weißer Hai&Weißer Hai&Menschenfresser&Menschenfressender Hai&Carcharodon carcharias(2) sind 2600~3899 und 100~149, Tigerhai&Galeocerdo cuvieri(3) sind 3900~5199 und 150~199, Hammerhai&Hammerhai (4) sind 5200~6499 und 200~249, Zitterrochen&Kampffisch&Taubfisch&Torpedo(5) sind 6500~7799 und 250~299, Stachelrochen(6) ist 7800~9099 und 250~299, Hahn(7) ist 9100~10399 und 300~349, Henne(8) ist 10400~11699 und 350~399, Strauß&Struthio camelus(9) sind 11700~12999 und 400~449 usw.
from torchvision.datasets import ImageNet
from torchvision.datasets.folder import default_loader

train_data = ImageNet(
    root="data"
)

train_data = ImageNet(
    root="data",
    split="train",
    transform=None,
    target_transform=None,
    loader=default_loader
)

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

len(train_data), len(val_data)
# (1281167, 50000)

train_data
# Dataset ImageNet
#     Number of datapoints: 1281167
#     Root location: D:/data
#     Split: train

train_data.root
# 'data'

train_data.split
# 'train'

print(train_data.transform)
# None

print(train_data.target_transform)
# None

train_data.loader
# <function torchvision.datasets.folder.default_loader(path: str) -> Any>

len(train_data.classes), train_data.classes
# (1000,
#  [('tench', 'Tinca tinca'), ('goldfish', 'Carassius auratus'),
#   ('great white shark', 'white shark', 'man-eater', 'man-eating shark',
#    'Carcharodon carcharias'), ('tiger shark', 'Galeocerdo cuvieri'),
#   ('hammerhead', 'hammerhead shark'), ('electric ray', 'crampfish',
#    'numbfish', 'torpedo'), ('stingray',), ('cock',), ('hen',),
#   ('ostrich', 'Struthio camelus'), ..., ('bolete',), ('ear', 'spike',
#    'capitulum'), ('toilet tissue', 'toilet paper', 'bathroom tissue')])

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

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

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

train_data[1300]
# (<PIL.Image.Image image mode=RGB size=640x480>, 1)

train_data[2600]
# (<PIL.Image.Image image mode=RGB size=500x375>, 2)

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

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

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

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

val_data[100]
# (<PIL.Image.Image image mode=RGB size=679x444>, 2)

import matplotlib.pyplot as plt

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

train_ims = [0, 1, 2, 1300, 2600, 3900, 5200, 6500, 7800, 9100]
val_ims = [0, 1, 2, 50, 100, 150, 200, 250, 300, 350]

show_images(data=train_data, ims=train_ims, main_title="train_data")
show_images(data=val_data, ims=val_ims, main_title="val_data")
Nach dem Login kopieren

ImageNet in PyTorch

ImageNet in PyTorch

Das obige ist der detaillierte Inhalt vonImageNet in PyTorch. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:dev.to
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage