Для проекта по нейронным сетям я использую Pytorch и работаю с набором данных EMNIST.
Код, который уже задан, загружается в набор данных:
train_dataset = dsets.MNIST(root='./data',
train=True,
transform=transforms.ToTensor(),
download=True)
И подготавливает его:
train_loader = torch.utils.data.DataLoader(dataset=train_dataset,
batch_size=batch_size,
shuffle=True)
Затем, когда все конфигурации сети определены , существует l oop для обучения модели за эпоху:
for i, (images, labels) in enumerate(train_loader):
В примере кода это работает нормально.
Для моей задачи мне предоставляется набор данных, который я загружаю следующим образом:
emnist = scipy.io.loadmat("DIRECTORY/emnist-letters.mat")
data = emnist ['dataset']
X_train = data ['train'][0, 0]['images'][0, 0]
y_train = data ['train'][0, 0]['labels'][0, 0]
Затем я создаю train_dataset следующим образом:
train_dataset = np.concatenate((X_train, y_train), axis = 1)
train_dataset = torch.from_numpy(train_dataset)
И использую тот же шаг для его подготовки:
train_loader = torch.utils.data.DataLoader(dataset=train_dataset,
batch_size=batch_size,
shuffle=True)
Однако, когда я пытаюсь использовать тот же l oop, что и раньше:
for i, (images, labels) in enumerate(train_loader):
, я получаю следующую ошибку:
ValueError: too many values to unpack (expected 2)
Кто знает, что я могу сделать, чтобы обучить свой набор данных с этим l oop?