Эта проблема связана с PySyft
. Как вы можете видеть в этом выпуске № 1893 , текущий обходной путь должен быть установлен:
import torch
torch.set_default_tensor_type(torch.cuda.FloatTensor)
сразу после import torch
.
Код:
import torch
from torch import nn
torch.set_default_tensor_type(torch.cuda.FloatTensor) # <-- workaround
import syft as sy
hook = sy.TorchHook(torch)
device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
print(device)
model = nn.Sequential(nn.Linear(784,256),
nn.ReLU(),
nn.Linear(256,128),
nn.ReLU(),
nn.Linear(128,64),
nn.ReLU(),
nn.Linear(64,10),
nn.LogSoftmax(dim = 1))
model = model.to(device)
print(model)
Выход:
cuda
Sequential(
(0): Linear(in_features=784, out_features=256, bias=True)
(1): ReLU()
(2): Linear(in_features=256, out_features=128, bias=True)
(3): ReLU()
(4): Linear(in_features=128, out_features=64, bias=True)
(5): ReLU()
(6): Linear(in_features=64, out_features=10, bias=True)
(7): LogSoftmax()
)