Example #1
0
device = torch.device("cuda" if torch.cuda.is_available() else "cpu")


# Load Data
train_dataset = datasets.MNIST(
    root="../dataset/", train=True, transform=transforms.ToTensor(), download=True
)
train_loader = DataLoader(dataset=train_dataset, batch_size=batch_size, shuffle=True, num_workers=128)
test_dataset = datasets.MNIST(
    root="../dataset/", train=False, transform=transforms.ToTensor(), download=True
)
test_loader = DataLoader(dataset=test_dataset, batch_size=batch_size, shuffle=True)

# Initialize network

model = CNN.CNN_2().to(device)      # Choose network CNN_1 or CNN_2

# Loss and optimizer
criterion = nn.CrossEntropyLoss()
optimizer = optim.SGD(model.parameters(), lr=learning_rate, momentum=momentum)

# Train Network

for epoch in range(n_epochs):
    print("EPOCH", epoch)
    for batch_idx, (data, targets) in enumerate(train_loader):
        # get data to cuda if possible
        data = data.to(device=device)
        targets = targets.to(device=device)

        # forward