python
import milk
import torch
train_dataset = milk.datasets.CIFAR10(root='./data', train=True, transform=milk.transforms.ToTensor(), download=True)
test_dataset = milk.datasets.CIFAR10(root='./data', train=False, transform=milk.transforms.ToTensor(), download=True)
model = milk.models.resnet18(pretrained=True)
model.fc = torch.nn.Linear(512, 10)
train_loader = torch.utils.data.DataLoader(train_dataset, batch_size=64, shuffle=True)
test_loader = torch.utils.data.DataLoader(test_dataset, batch_size=64, shuffle=False)
optimizer = torch.optim.Adam(model.parameters(), lr=0.001)
criterion = torch.nn.CrossEntropyLoss()
for epoch in range(10):
for images, labels in train_loader:
optimizer.zero_grad()
outputs = model(images)
loss = criterion(outputs, labels)
loss.backward()
optimizer.step()
correct = 0
total = 0
with torch.no_grad():
for images, labels in test_loader:
outputs = model(images)
_, predicted = torch.max(outputs.data, 1)
total += labels.size(0)
correct += (predicted == labels).sum().item()
accuracy = 100 * correct / total
print("Accuracy: {:.2f}%".format(accuracy))