Rumah > pembangunan bahagian belakang > Tutorial Python > MovingMNIST dalam PyTorch

MovingMNIST dalam PyTorch

Linda Hamilton
Lepaskan: 2024-12-17 04:35:25
asal
175 orang telah melayarinya

Beli Saya Kopi☕

*Siaran saya menerangkan Moving MNIST.

MovingMNIST() boleh menggunakan Moving MNIST dataset 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(Optional-Default:None-Type:str): *Memo:
    • Tiada, "kereta api" atau "ujian" boleh ditetapkan padanya.
    • Jika Tiada, kesemua 20 bingkai(imej) setiap video dikembalikan, mengabaikan nisbah_pecah.
  • Argumen ke-3 ialah split_ratio(Optional-Default:10-Type:int): *Memo:
    • Jika split ialah "kereta api", data[:, :split_ratio] dikembalikan.
    • Jika belah ialah "ujian", data[:, split_ratio:] dikembalikan.
    • Jika perpecahan Tiada, ia diabaikan. mengabaikan nisbah_pecah.
  • Argumen ke-4 ialah transform(Optional-Default:None-Type:callable).
  • Argumen ke-5 ialah muat turun(Optional-Default:False-Type:bool): *Memo:
    • Jika Benar, set data dimuat turun dari internet ke akar.
    • Jika ia Benar dan set data sudah dimuat turun, ia akan diekstrak.
    • Jika ia Benar dan set data sudah dimuat turun, tiada apa yang berlaku.
    • Ia sepatutnya Palsu jika set data sudah dimuat turun kerana ia lebih pantas.
    • Anda boleh memuat turun dan mengekstrak set data secara manual dari sini ke mis. data/MovingMNIST/.
from torchvision.datasets import MovingMNIST

all_data = MovingMNIST(
    root="data"
)

all_data = MovingMNIST(
    root="data",
    split=None,
    split_ratio=10,
    download=False,
    transform=None
)

train_data = MovingMNIST(
    root="data",
    split="train"
)

test_data = MovingMNIST(
    root="data",
    split="test"
)

len(all_data), len(train_data), len(test_data)
# (10000, 10000, 10000)

len(all_data[0]), len(train_data[0]), len(test_data[0])
# (20, 10, 10)

all_data
# Dataset MovingMNIST
#     Number of datapoints: 10000
#     Root location: data

all_data.root
# 'data'

print(all_data.split)
# None

all_data.split_ratio
# 10

all_data.download
# <bound method MovingMNIST.download of Dataset MovingMNIST
#     Number of datapoints: 10000
#     Root location: data>

print(all_data.transform)
# None

from torchvision.datasets import MovingMNIST

import matplotlib.pyplot as plt

plt.figure(figsize=(10, 3))

plt.subplot(1, 3, 1)
plt.title("all_data")
plt.imshow(all_data[0].squeeze()[0])

plt.subplot(1, 3, 2)
plt.title("train_data")
plt.imshow(train_data[0].squeeze()[0])

plt.subplot(1, 3, 3)
plt.title("test_data")
plt.imshow(test_data[0].squeeze()[0])

plt.show()
Salin selepas log masuk

MovingMNIST in PyTorch

from torchvision.datasets import MovingMNIST

all_data = MovingMNIST(
    root="data",
    split=None
)

train_data = MovingMNIST(
    root="data",
    split="train"
)

test_data = MovingMNIST(
    root="data",
    split="test"
)

def show_images(data, main_title=None):
    plt.figure(figsize=(10, 8))
    plt.suptitle(t=main_title, y=1.0, fontsize=14)
    for i, image in enumerate(data, start=1):
        plt.subplot(4, 5, i)
        plt.tight_layout(pad=1.0)
        plt.title(i)
        plt.imshow(image)
    plt.show()

show_images(data=all_data[0].squeeze(), main_title="all_data")
show_images(data=train_data[0].squeeze(), main_title="train_data")
show_images(data=test_data[0].squeeze(), main_title="test_data")
Salin selepas log masuk

MovingMNIST in PyTorch

MovingMNIST in PyTorch

MovingMNIST in PyTorch

from torchvision.datasets import MovingMNIST

all_data = MovingMNIST(
    root="data",
    split=None
)

train_data = MovingMNIST(
    root="data",
    split="train"
)

test_data = MovingMNIST(
    root="data",
    split="test"
)

import matplotlib.pyplot as plt

def show_images(data, main_title=None):
    plt.figure(figsize=(10, 8))
    plt.suptitle(t=main_title, y=1.0, fontsize=14)
    col = 5
    for i, image in enumerate(data, start=1):
        plt.subplot(4, 5, i)
        plt.tight_layout(pad=1.0)
        plt.title(i)
        plt.imshow(image.squeeze()[0])
        if i == col:
            break
    plt.show()

show_images(data=all_data, main_title="all_data")
show_images(data=train_data, main_title="train_data")
show_images(data=test_data, main_title="test_data")
Salin selepas log masuk

MovingMNIST in PyTorch

from torchvision.datasets import MovingMNIST
import matplotlib.animation as animation

all_data = MovingMNIST(
    root="data"
)

import matplotlib.pyplot as plt
from IPython.display import HTML

figure, axis = plt.subplots()

# ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ `ArtistAnimation()` ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓
images = []
for image in all_data[0].squeeze():
    images.append([axis.imshow(image)])
ani = animation.ArtistAnimation(fig=figure, artists=images,
                                interval=100)
# ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ `ArtistAnimation()` ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑

# ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ `FuncAnimation()` ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓
# def animate(i):
#     axis.imshow(all_data[0].squeeze()[i])
#
# ani = animation.FuncAnimation(fig=figure, func=animate,
#                               frames=20, interval=100)
# ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ `FuncAnimation()` ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑

# ani.save('result.gif') # Save the animation as a `.gif` file

plt.ioff() # Hide a useless image

# ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ Show animation ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓
HTML(ani.to_jshtml()) # Animation operator
# HTML(ani.to_html5_video()) # Animation video
# ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ Show animation ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑

# ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ Show animation ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓
# plt.rcParams["animation.html"] = "jshtml" # Animation operator
# plt.rcParams["animation.html"] = "html5" # Animation video
# ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ Show animation ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑
Salin selepas log masuk

MovingMNIST in PyTorch

MovingMNIST in PyTorch

from torchvision.datasets import MovingMNIST
from ipywidgets import interact, IntSlider

all_data = MovingMNIST(
    root="data"
)

import matplotlib.pyplot as plt
from IPython.display import HTML

def func(i):
    plt.imshow(all_data[0].squeeze()[i])

interact(func, i=(0, 19, 1))
# interact(func, i=IntSlider(min=0, max=19, step=1, value=0))
# ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ Set the start value ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑
plt.show()
Salin selepas log masuk

MovingMNIST in PyTorch

MovingMNIST in PyTorch

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

sumber:dev.to
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan