ImageNet dalam PyTorch

Barbara Streisand
Barbara Streisandasal
2025-01-04 22:25:40550semak imbas

Beli Saya Kopi☕

*Siaran saya menerangkan ImageNet.

ImageNet() boleh menggunakan dataset ImageNet seperti yang ditunjukkan di bawah:

*Memo:

  • Argumen pertama ialah root(Required-Type:str or pathlib.Path). *Laluan mutlak atau relatif boleh dilakukan.
  • Argumen ke-2 dipecahkan(Pilihan-Lalai:"kereta"-Jenis:str): *Memo:
    • "kereta api"(1,281,167 imej) atau "val"(50,000 imej) boleh ditetapkan kepadanya.
    • "test"(100,000 imej) tidak disokong jadi saya meminta ciri itu pada GitHub.
  • Terdapat argumen transformasi(Pilihan-Lalai:Tiada-Jenis:boleh dipanggil). *transform= mesti digunakan.
  • Terdapat hujah target_transform(Optional-Default:None-Type:callable). - Terdapat argumen transformasi (Pilihan-Lalai:Tiada-Jenis:boleh dipanggil). *target_transform= mesti digunakan.
  • Terdapat hujah pemuat(Optional-Default:torchvision.datasets.folder.default_loader-Type:callable). *loader= mesti digunakan.
  • Anda perlu memuat turun set data secara manual (ILSVRC2012_devkit_t12.tar.gz, ILSVRC2012_img_train.tar dan ILSVRC2012_img_val.tar ke data/, kemudian menjalankan ekstrak ImageNet() dan memuatkan set data.
  • Mengenai label dari kelas untuk kereta api dan indeks imej pengesahan masing-masing, tench&Tinca tinca(0) ialah 0~1299 dan 0~49, ikan emas &Carassius auratus(1) ialah 1300~2599 dan 50~99, jerung putih besar&jerung putih&pemakan manusia&jerung pemakan manusia&Carcharodon carcharias(2) ialah 2600~3899 dan 100~149, jerung harimau&Galeocerdo cuvieri(3) ialah 3900~5199 dan 150~199, hammerhead&hammerhead&hammerhead (4) ialah 5200~6499 dan 200~249, sinar elektrik&crampfish&numbfish&torpedo(5) ialah 6500~7709~ 299, ikan pari(6) ialah 7800~9099 dan 250~299, ayam jantan(7) ialah 9100~10399 dan 300~349, ayam(8) ialah 1040 ~11699 dan 350~399, burung unta&Struthio camelus
  • (9) ialah 11700~12999 dan 400~449, dsb.
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")

ImageNet in PyTorch

ImageNet in PyTorch

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

Kenyataan:
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