Question: Hello below is my code for MPL image classification. When I try to run the bold segment, I am given the following error: default_collate: batch
Hello below is my code for MPL image classification. When I try to run the bold segment, I am given the following error: "default_collate: batch must contain tensors, numpy arrays, numbers, dicts or lists; found
import torchvision.datasets as datasets
import torch.optim as optim
import torch.utils.data as data
import torch.nn as nn
from torchvision import transforms
train_data = datasets.CIFAR100(root='data', train=True, transform=None, download=True)
test_data = datasets.CIFAR100(root='data', train=False, transform=None, download=True)
class MLP(nn.Module):
def __init__(self, input_size, hidden_size, num_classes):
super(MLP, self).__init__()
self.fc1 = nn.Linear(input_size, hidden_size)
self.relu1 = nn.ReLU()
self.fc2 = nn.Linear(hidden_size, hidden_size)
self.relu2 = nn.ReLU()
self.fc3 = nn.Linear(hidden_size, num_classes)
def forward(self, x):
out = self.fc1(x)
out = self.relu1(out)
out = self.fc2(out)
out = self.relu2(out)
out = self.fc3(out)
return out
input_size = 32 * 32 * 3
hidden_size = 512
num_classes = 100
learning_rate = 0.001
batch_size = 128
num_epochs = 10
model = MLP(input_size, hidden_size, num_classes)
train_loader = data.DataLoader(train_data, batch_size=batch_size, shuffle=True)
test_loader = data.DataLoader(test_data, batch_size=batch_size, shuffle=False)
criterion = nn.CrossEntropyLoss()
optimizer = optim.Adam(model.parameters(), lr=learning_rate)
for epoch in range(num_epochs):
for i, (images, labels) in enumerate(train_loader):
images = images.reshape(-1, input_size).to(device)
labels = labels.to(device)
optimizer.zero_grad()
outputs = model(images)
loss = criterion(outputs, labels)
loss.backward()
Step by Step Solution
There are 3 Steps involved in it
Get step-by-step solutions from verified subject matter experts
