关键词:
【中文标题】为啥我的简单 pytorch 网络不能在 GPU 设备上运行?【英文标题】:Why doesn't my simple pytorch network work on GPU device?为什么我的简单 pytorch 网络不能在 GPU 设备上运行? 【发布时间】:2019-01-07 09:47:42 【问题描述】:我根据教程构建了一个简单的网络,但出现此错误:
RuntimeError:预期的类型为 torch.cuda.FloatTensor 的对象,但已找到 为参数 #4 'mat1' 输入 torch.FloatTensor
有什么帮助吗?谢谢!
import torch
import torchvision
device = torch.device("cuda:0")
root = '.data/'
dataset = torchvision.datasets.MNIST(root, transform=torchvision.transforms.ToTensor(), download=True)
dataloader = torch.utils.data.DataLoader(dataset, batch_size=4)
class Net(torch.nn.Module):
def __init__(self):
super(Net, self).__init__()
self.out = torch.nn.Linear(28*28, 10)
def forward(self, x):
x = x.view(x.size(0), -1)
x = self.out(x)
return x
net = Net()
net.to(device)
for i, (inputs, labels) in enumerate(dataloader):
inputs.to(device)
out = net(inputs)
【问题讨论】:
这个问题是关于 PyTorch,而不是 CUDA。这就是我删除标签的原因。两次。请不要再添加了 【参考方案1】:TL;DR 这是解决方法
inputs = inputs.to(device)
为什么?!torch.nn.Module.to()
和 torch.Tensor.to()
之间存在细微差别:Module.to()
是 就地 运算符,Tensor.to()
不是。因此
net.to(device)
更改net
本身并将其移动到device
。另一方面
inputs.to(device)
不更改inputs
,而是返回inputs
的副本,该inputs
位于device
。要使用该“设备上”副本,您需要将其分配给一个变量,因此
inputs = inputs.to(device)
【讨论】:
有效!太感谢了!我花了几个小时寻找答案。 @Harkonnen 很高兴我能提供帮助。在阅读 pytorch 文档时,您应该注意“就地”操作:有些方法是就地的,有些不是,有些方法具有“就地”变体...... 我有这个错误,因为我没有设置我的GPU设备,为:device = torch.device('cuda')【参考方案2】:import torch
import numpy as np
x = torch.tensor(np.array(1), device='cuda:0')
print(x.device) # Prints `cpu`
x = torch.tensor(1, device='cuda:0')
print(x.device) # Prints `cuda:0`
现在张量驻留在 GPU 上
【讨论】:
你想从答案中说什么不清楚。请您解释为什么使用 numpy 没有将张量推送到 cudaanaconda中安装pytorch(gpu版)(离线安装)(最简单)(代码片段)
本文介绍在anaconda中安装pytorch。最近因为学习需要,要下载pytorchGPU版本来训练网络。相信pytorch大家都不陌生了,PyTorch是一个Torch7团队开源的Python优先的深度学习框架,提供两个高级功能:强大的GPU加速Tensor计算&... 查看详情
在 Google Colaboratory 上,对于 Pytorch,GPU 的性能比 CPU 慢
】在GoogleColaboratory上,对于Pytorch,GPU的性能比CPU慢【英文标题】:GPUperformingslowerthanCPUforPytorchonGoogleColaboratory【发布时间】:2018-12-1305:13:06【问题描述】:GPU在大约16秒内训练这个网络。CPU在大约13秒内。(我正在取消注释/注释... 查看详情
如何确保所有 PyTorch 代码充分利用 Google Colab 上的 GPU
】如何确保所有PyTorch代码充分利用GoogleColab上的GPU【英文标题】:HowtoensureallPyTorchcodefullyutilisesGPUonGoogleColab【发布时间】:2019-02-0706:30:02【问题描述】:我是PyTorch的新手,一直在做一些关于CIFAR10的教程,特别是在GoogleColab上,... 查看详情
在gpu上训练pytorch代码(代码片段)
文章目录PyTorch操作tensor在不同设备上的操作网络的不同设备上PyTorch操作PyTorch允许我们在程序内部进行计算时,无缝地将数据移动到GPU。当我们使用GPU时,我们可以使用.cuda()方法,当我们使用CPU时,我们可以使用... 查看详情
在gpu上训练pytorch代码(代码片段)
文章目录PyTorch操作tensor在不同设备上的操作网络的不同设备上PyTorch操作PyTorch允许我们在程序内部进行计算时,无缝地将数据移动到GPU。当我们使用GPU时,我们可以使用.cuda()方法,当我们使用CPU时,我们可以使用... 查看详情
在gpu上训练pytorch代码(代码片段)
文章目录PyTorch操作tensor在不同设备上的操作网络的不同设备上PyTorch操作PyTorch允许我们在程序内部进行计算时,无缝地将数据移动到GPU。当我们使用GPU时,我们可以使用.cuda()方法,当我们使用CPU时,我们可以使用... 查看详情
pytorch中多gpu训练指南
...数据量的不断提升,使用多GPU去训练是不可避免的事情。Pytorch在0.4.0及以后的版本中已经提供了多GPU训练的方式,本文简单讲解下使用Pytorch多GPU训练的方式以及一些注意的地方。这里我们谈论的是单主机多GPUs训练,与分布式训... 查看详情
为啥在 conda 安装后 Tensorflow 无法识别我的 GPU?
】为啥在conda安装后Tensorflow无法识别我的GPU?【英文标题】:WhyisTensorflownotrecognizingmyGPUaftercondainstall?为什么在conda安装后Tensorflow无法识别我的GPU?【发布时间】:2021-03-2403:41:50【问题描述】:我是深度学习的新手,过去2天我一... 查看详情
pytorch 从 gpu 中删除模型
】pytorch从gpu中删除模型【英文标题】:pytorchdeletemodelfromgpu【发布时间】:2019-04-2009:53:43【问题描述】:我想在我的项目中基于Pytorch进行交叉验证。而且我没有找到pytorch提供的删除当前模型并清空GPU内存的任何方法。你能告诉... 查看详情
超简单的pytorch(gpu版)安装教程(亲测有效)(代码片段)
之前安装pytorch框架,直接在pytorch官网复制命令下载。顺利安装之后,结果发现竟然是CPU版本,导致运行视频流十分卡顿,浪费了GPU。于是果断卸载pipuninstalltorchpipuninstalltorchvision经过数小时的尝试之后,终于... 查看详情
如何告诉 PyTorch 不使用 GPU?
】如何告诉PyTorch不使用GPU?【英文标题】:HowtotellPyTorchtonotusetheGPU?【发布时间】:2021-06-0822:13:30【问题描述】:我想在CPU和GPU之间进行一些时序比较以及一些分析,并想知道是否有办法告诉pytorch不使用GPU而只使用CPU?我意识到... 查看详情
如何告诉 PyTorch 不使用 GPU?
】如何告诉PyTorch不使用GPU?【英文标题】:HowtotellPyTorchtonotusetheGPU?【发布时间】:2019-04-1510:06:33【问题描述】:我想在CPU和GPU之间进行一些时序比较以及一些分析,并想知道是否有办法告诉pytorch不使用GPU而只使用CPU?我意识到... 查看详情
如何在pytorch中进行并行处理
】如何在pytorch中进行并行处理【英文标题】:Howtodoparallelprocessinginpytorch【发布时间】:2019-08-1601:17:42【问题描述】:我正在研究一个深度学习问题。我正在使用pytorch解决它。我有两个GPU在同一台机器上(16273MiB,12193MiB)。我... 查看详情
为啥我的 SSML 不能在 Alexa 设备上运行?
】为啥我的SSML不能在Alexa设备上运行?【英文标题】:WhydoesmySSMLnotworkonAlexaDevices?为什么我的SSML不能在Alexa设备上运行?【发布时间】:2021-11-1610:46:56【问题描述】:我正在制作一个非常简单的技能来测试Alexa的SSML功能。为简单... 查看详情
在简单的 Rush Hour 求解器中使用 BFS - 为啥我的代码不能求解电路板?
】在简单的RushHour求解器中使用BFS-为啥我的代码不能求解电路板?【英文标题】:UsingBFSinasimpleRushHoursolver-whyismycodenotsolvingtheboard?在简单的RushHour求解器中使用BFS-为什么我的代码不能求解电路板?【发布时间】:2012-12-0918:37:18【... 查看详情
pytorch 未在 gpu 上运行而为真
】pytorch未在gpu上运行而为真【英文标题】:pytorchisn\'trunningongpuwhiletrue【发布时间】:2021-08-2319:17:31【问题描述】:我想在本地gpu上训练,但它只在cpu上运行,而torch.cuda.is_available()实际上是真的,我可以看到我的gpu但它只在cpu上... 查看详情
pytorch指定gpu的方法
参考技术A在生成网络对象之前执行:torch.cuda.set_device(0)net=torch.nn.DataParallel(model,device_ids=[0])net=Net.cuda(0) 查看详情
为啥我不能在 dashcode 中将网络剪辑图标添加到我的 web 应用程序。我啥都试过了?
】为啥我不能在dashcode中将网络剪辑图标添加到我的web应用程序。我啥都试过了?【英文标题】:Whycan\'tIaddawebclipicontomywebappindashcode.I\'vetriedeverything?为什么我不能在dashcode中将网络剪辑图标添加到我的web应用程序。我什么都试过... 查看详情