Hi all,
I’m trying to solve simple problems based on MNIST.
import numpy as np
import os
import torch
import torch.nn as nn
import torch.nn.functional as F
import matplotlib.pyplot as plt
from torchvision import datasets, transforms
dev = 'cuda'
os.environ['KMP_DUPLICATE_LIB_OK'] = 'True'

batch_size = 1
test_batch_size = 1
train_loader = torch.utils.data.DataLoader (datasets.MNIST('dataset/', train=True, download=True,
                                                           transform= transforms.Compose([transforms.ToTensor(),
                                                            ])),
                                                            batch_size = batch_size, shuffle=True)

image, label = next(iter(train_loader))

with torch.no_grad():

    flatten = image.view(1, 28 * 28).to(dev) 
    print(flatten.shape)

    lin = nn.Linear(784, 10)(flatten) 
    print(lin)

Even though I designated flatten to ‘cuda’, error message still comes out.
Traceback (most recent call last):
  File "C:/Users/yoonh/Works/main.py", line 59, in <module>
    lin = nn.Linear(784, 10)(flatten) 
  File "C:\ProgramData\Anaconda3\lib\site-packages\torch\nn\modules\module.py", line 889, in _call_impl
    result = self.forward(*input, **kwargs)
  File "C:\ProgramData\Anaconda3\lib\site-packages\torch\nn\modules\linear.py", line 94, in forward
    return F.linear(input, self.weight, self.bias)
  File "C:\ProgramData\Anaconda3\lib\site-packages\torch\nn\functional.py", line 1753, in linear
    return torch._C._nn.linear(input, weight, bias)
RuntimeError: Tensor for 'out' is on CPU, Tensor for argument #1 'self' is on CPU, but expected them to be on GPU (while checking arguments for addmm)

I am looking forward to see any help. Thanks in advance.
Kind regards,
Yoonho