Moving MNIST est un ensemble de test pour évaluer la prédiction et la reconstruction de séquence. Une collection d'images créées pour que les chiffres manuscrits se déplacent sur l'écran.
La gauche est l'ensemble de données et la droite est un exemple de la prédiction. Extrait de ce site.
Il existe 10 000 types de données, chacun contenant 20 images. La taille de l'image est de 64 x 64 et elle montre deux nombres.
Vous pouvez le télécharger depuis ce site.
!curl -o mnist_test_seq.npy http://www.cs.toronto.edu/~nitish/unsupervised_video/mnist_test_seq.npy
Lisez les données.
import numpy as np
path="./mnist_test_seq.npy"
data = np.load(path)
print(data.shape) # (20, 10000, 64, 64)
Utilisez ipywidgets pour vous assurer qu'il s'agit d'une vidéo.
%matplotlib inline
import matplotlib.pyplot as plt
from ipywidgets import interact
def f(k):
plt.imshow(data[k][0], 'gray')
plt.show()
interact(f, k=(0,19,1) )
Il existe 10 000 de ces ensembles.
Comment créer un ensemble de données lors de la prédiction de 10 images en utilisant 10 images.
import numpy as np
from torch.utils.data import Dataset
class MovingMnistDataset(Dataset):
def __init__(self, path="./mnist_test_seq.npy"):
self.data = np.load(path)
# (t, N, H, W) -> (N, t, C, H, W)
self.data = self.data.transpose(1, 0, 2, 3)[:, :, None, ...]
def __len__(self):
return len(self.data)
def __getitem__(self, i):
return self.data[i, :10, ...].astype(np.int32), self.data[i, 10:, ...].astype(np.int32)
dataset = MovingMnistDataset()