PyTorch の ImageNet

Barbara Streisand
Barbara Streisandオリジナル
2025-01-04 22:25:40506ブラウズ

コーヒー買ってきて☕

*私の投稿では ImageNet について説明しています。

ImageNet() は、以下に示すように ImageNet データセットを使用できます:

*メモ:

  • 最初の引数は root(Required-Type:str または pathlib.Path) です。 *絶対パスまたは相対パスが可能です。
  • 2番目の引数はsplit(Optional-Default:"train"-Type:str)です: *メモ:
    • 「train」(1,281,167枚)または「val」(50,000枚)を設定できます。
    • 「テスト」(100,000 枚の画像) はサポートされていないため、GitHub で機能をリクエストしました。
  • 変換引数(Optional-Default:None-Type:callable)があります。 *transform= を使用する必要があります。
  • target_transform引数(Optional-Default:None-Type:callable)があります。 - 変換引数(Optional-Default:None-Type:callable)があります。 *target_transform= を使用する必要があります。
  • ローダー引数(Optional-Default:torchvision.datasets.folder.default_loader-Type:callable)があります。 *loader= を使用する必要があります。
  • データセット (ILSVRC2012_devkit_t12.tar.gz、ILSVRC2012_img_train.tar、ILSVRC2012_img_val.tar を data/ に手動でダウンロードし、ImageNet() を実行してデータセットを抽出してロードする必要があります。
  • 電車と検証画像のインデックスのクラスからのラベルについて、tench&Tinca tinca(0) は 0~1299 と 0~49、金魚&Carassius auratus(1) は1300~2599 と 50~99、ホオジロザメ&ホオジロザメ&人食いザメ&人食いザメ&Carcharodon carcharias(2) は2600~3899 と 100~149、タイガーシャークガレオセルド・クビエリ(3)は3900~5199と150~199、シュモクザメシュモクザメサメ(4)は5200~6499と200~249、エレクトリックエイ&ザリガニ&しびれ魚&魚雷(5) ) は 6500 ~ 7799 であり、 250~299、エイ(6)は7800~9099と250~299、コック(7)は9100~10399と300~349、ヘン( 8) は 10400 ~ 11699 であり、 350~399、ダチョウ&ストルチオラクダ(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 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。