Python Pytork未使用GPU,即使它检测到GPU
我把我的Windows10Jupyter笔记本作为服务器,并在上面运行一些火车 我已经正确安装了CUDA9.0和cuDNN,python检测GPU。这是我在蟒蛇提示上看到的Python Pytork未使用GPU,即使它检测到GPU,python,gpu,pytorch,Python,Gpu,Pytorch,我把我的Windows10Jupyter笔记本作为服务器,并在上面运行一些火车 我已经正确安装了CUDA9.0和cuDNN,python检测GPU。这是我在蟒蛇提示上看到的 >>> torch.cuda.get_device_name(0) 'GeForce GTX 1070' 我还通过.cuda()将我的模型和张量放在cuda上 但在Windows的Process Manager上,每当我开始培训时,只有CPU使用率上升到25%,GPU使用率保持为0。如何解决这个问题?在C
>>> torch.cuda.get_device_name(0)
'GeForce GTX 1070'
我还通过.cuda()将我的模型和张量放在cuda上
但在Windows的Process Manager上,每当我开始培训时,只有CPU使用率上升到25%,GPU使用率保持为0。如何解决这个问题?在Cuda上使用PyTorch时,我遇到了类似的问题。在寻找可能的解决方案后,我发现Soumith自己的以下帖子非常有用
底线是,至少在我的情况下,我不能在GPU上施加足够的负载。我的应用程序出现了瓶颈。尝试另一个例子,或者增加批量大小;应该没问题。我安装了pytorch,那么cuda和cudnn我必须在我的conda环境中重新安装pytorch吗?我已经重新安装了pytorch,但没有任何变化。您能找到解决方案吗?我也有同样的问题我也有同样的问题。没有解决办法吗?我也有同样的问题。有更新吗?
model = LogPPredictor(1, 58, 64, 128, 1, 'gsc')
if torch.cuda.is_available():
torch.set_default_tensor_type(torch.cuda.DoubleTensor)
model.cuda()
else:
torch.set_default_tensor_type(torch.FloatTensor)
list_train_loss = list()
list_val_loss = list()
acc = 0
mse = 0
optimizer = args.optim(model.parameters(),
lr=args.lr,
weight_decay=args.l2_coef)
data_train = DataLoader(args.dict_partition['train'],
batch_size=args.batch_size,
pin_memory=True,
shuffle=args.shuffle)
data_val = DataLoader(args.dict_partition['val'],
batch_size=args.batch_size,
pin_memory=True,
shuffle=args.shuffle)
for epoch in tqdm_notebook(range(args.epoch), desc='Epoch'):
model.train()
epoch_train_loss = 0
for i, batch in enumerate(data_train):
list_feature = torch.tensor(batch[0]).cuda()
list_adj = torch.tensor(batch[1]).cuda()
list_logP = torch.tensor(batch[2]).cuda()
list_logP = list_logP.view(-1,1)
optimizer.zero_grad()
list_pred_logP = model(list_feature, list_adj)
list_pred_logP.require_grad = False
train_loss = args.criterion(list_pred_logP, list_logP)
epoch_train_loss += train_loss.item()
train_loss.backward()
optimizer.step()
list_train_loss.append(epoch_train_loss/len(data_train))
model.eval()
epoch_val_loss = 0
with torch.no_grad():
for i, batch in enumerate(data_val):
list_feature = torch.tensor(batch[0]).cuda()
list_adj = torch.tensor(batch[1]).cuda()
list_logP = torch.tensor(batch[2]).cuda()
list_logP = list_logP.view(-1,1)
list_pred_logP = model(list_feature, list_adj)
val_loss = args.criterion(list_pred_logP, list_logP)
epoch_val_loss += val_loss.item()
list_val_loss.append(epoch_val_loss/len(data_val))
data_test = DataLoader(args.dict_partition['test'],
batch_size=args.batch_size,
pin_memory=True,
shuffle=args.shuffle)
model.eval()
with torch.no_grad():
logP_total = list()
pred_logP_total = list()
for i, batch in enumerate(data_val):
list_feature = torch.tensor(batch[0]).cuda()
list_adj = torch.tensor(batch[1]).cuda()
list_logP = torch.tensor(batch[2]).cuda()
logP_total += list_logP.tolist()
list_logP = list_logP.view(-1,1)
list_pred_logP = model(list_feature, list_adj)
pred_logP_total += list_pred_logP.tolist()
mse = mean_squared_error(logP_total, pred_logP_total)