Insieme di dati con due input
Costruire un modello con più input parte dalla creazione di un dataset personalizzato che sappia fornire tutti gli input al modello. In questo esercizio, creerai il dataset Omniglot che restituisce terne composte da:
- L'immagine di un carattere da classificare,
- Il vettore one-hot dell'alfabeto di lunghezza 30, con zeri ovunque tranne un singolo uno che indica l'ID dell'alfabeto da cui proviene il carattere,
- L'etichetta target, un intero tra 0 e 963.
Ti vengono forniti samples, una lista di 3-uple che comprendono il percorso al file dell'immagine, il relativo vettore dell'alfabeto e l'etichetta target. Inoltre, sono già stati eseguiti i seguenti import, quindi mettiamoci al lavoro!
from PIL import Image
from torch.utils.data import DataLoader, Dataset
from torchvision import transforms
Questo esercizio fa parte del corso
Deep Learning intermedio con PyTorch
Esercizio pratico interattivo
Prova a risolvere questo esercizio completando il codice di esempio.
class OmniglotDataset(Dataset):
def __init__(self, transform, samples):
# Assign transform and samples to class attributes
____ = ____
____ = ____