Obviously it is not. And of course I have model = model.to(DEVICE). Did you not read my post completely?

cuda.is_available() is True, next(model.parameters()).is_cuda is also True, and I can tell my GPU is being used. So I’m sure it’s running on GPU, but I’m confused by the type.

But since you asked, the relevant part is
model = model.to(DEVICE)
    modelparams = model.parameters()
    initial_lr = 3e-4
    optim = optims.Adam(modelparams, initial_lr, weight_decay=1e-5)
    num_iters = len(trainset) / BATCH_SIZE
    print('Running training.')
    for epoch in range(1, 1 + 5):
        model.train()
        if epoch == 4:
            for g in optim.param_groups:
                g['lr'] = initial_lr / 10.
        startime = time()
        for i, (feats, targs) in enumerate(trainloader):
            feats = feats.to(DEVICE)
            targs = targs.to(DEVICE)
            optim.zero_grad()
            output = model(feats)
            loss = F.nll_loss(output, targs, reduction='sum')
            loss.backward()
            optim.step()
            if i % int(num_iters // 4) == 0:
                print(loss.item() / len(targs))
        epochtime = time() - startime
        print(f'Epoch done in {epochtime}')
        evaltest(model, testloader)
    print('Done')