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

PyTorch 中的 ImageNet

Barbara Streisand
發布: 2025-01-04 22:25:40
原創
491 人瀏覽過

請我喝杯咖啡☕

*我的貼文解釋了 ImageNet。

ImageNet()可以使用ImageNet資料集,如下所示:

*備忘錄:

  • 第一個參數是 root(必要類型:str 或 pathlib.Path)。 *絕對或相對路徑都是可能的。
  • 第二個參數是 split(可選-預設:"train"-類型:str): *備註:
    • 可以設定「train」(1,281,167張圖片)或「val」(50,000張圖片)。
    • 不支援「測試」(100,000 張圖像),因此我在 GitHub 上請求了該功能。
  • 有轉換參數(可選-預設:無-類型:可呼叫)。必須使用*transform=。
  • 有 target_transform 參數(可選-預設:無-類型:可呼叫)。 - 有轉換參數(可選-預設:無-類型:可呼叫)。必須使用*target_transform=。
  • 有 loader 參數(可選-預設:torchvision.datasets.folder.default_loader-類型:可呼叫)。 *loader=必須使用。
  • 您必須手動下載資料集(ILSVRC2012_devkit_t12.tar.gz、ILSVRC2012_img_train.tar 和 ILSVRC2012_img_val.tar 到 data/,然後執行 ImageNet() 提取並載入資料集。
  • >
  • 關於訓練影像索引和驗證影像索引的類別標籤,tench&Tincatinca(0) 分別為0~1299 和0~49,goldfish &鯽魚(1) 是1300~2599 和50~99, 大白鯊&白鯊&食人鯊&食人鯊&Carcharodon carcharias (2) 2600~3899和100~149,虎鯊&Galeocerdo cuvieri(3) 是3900~5199 和150~199,鎚頭鯊& (4) 為5200~6499且200~249,電鰩&螯蝦&麻木魚&魚雷(5)分別為650077799和250~ 299,魟魚(6)是7800~9099和250~299,公雞(7)是9100~10399和300~349,母雞(8)是1040011699和350~399,~39 鴕鳥&鴕鳥(9)分別是11700~12999和400~449等。
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

以上是PyTorch 中的 ImageNet的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:dev.to
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板