PyTorch|在张量运算中使用GPU

pytorch在张量运算时允许我们在GPU上进行计算,我们可以采用这些方法将数据无缝的移入或移出GPU。

当我们进入GPU时,我们可以使用cuda()方法 ,当我们进入CPU时,我们可以使用**cpu()**方法。

同时,我们还可以使用to() 方法,去GPU的时候,我们写到**('cuda')** ,去CPU的时候,我们写到**('cpu')**。

在训练过程中,要想利用我们的GPU,有两个基本要求:

  • 数据必须移到GPU上

  • 网络必须移到GPU上

默认情况下,在创建PyTorch张量或PyTorch神经网络模块时,会在CPU上初始化相应的数据。具体来说,这些数据存在于CPU的内存中。

下面是一些实例:

复制代码
>>> import torch
>>> data=torch.tensor([1,2,3,4])>>> data.devicedevice(type='cpu')
>>> v1=data.to('cuda')>>> v1.devicedevice(type='cuda', index=0)>>> v2=data.cuda()>>> v2.devicedevice(type='cuda', index=0)
>>> v3=v2.to('cpu')>>> v3.devicedevice(type='cpu')>>> v4=v2.cpu()>>> v4.device

然而,代码需要在不同的设备都能运行,也就是在不修改代码的情况下在GPU上可以使用或者在只能使用CPU的设备上运行

例如,假设我们写的代码到处使用cuda()方法,然后,我们把代码交给一个没有GPU的用户,这样做是行不通的。

对此,我们可以这样处理:​​​​​​​

复制代码
device=torch.device("cuda" if torch.cuda.is_available() else "cpu")input=data.to(device)network=Network()net=network.to(device)

总结起来,在我们编写的代码中,尽量使用这种形式:​​​​​​​

复制代码
device=torch.device("cuda" if torch.cuda.is_available() else "cpu")***=***.to(device)
相关推荐
汽车仪器仪表相关领域几秒前
GT-NHVR-20-A1工业及商业用途点型可燃气体探测器:精准感知隐患,筑牢工商业安全防线
运维·网络·人工智能·功能测试·单元测试·汽车·压力测试
kishu_iOS&AI3 分钟前
深度学习 —— Pytorch
人工智能·pytorch·深度学习
耿雨飞5 分钟前
DeerFlow 系列教程 附录 | 核心文件索引、官方文档索引与推荐阅读顺序
人工智能·deer-flow·llm应用平台
2401_887724506 分钟前
怎样使用Navicat高级特权进行从备份中提取单表数据_企业数据保护.txt
jvm·数据库·python
小飞象—木兮8 分钟前
《Power BI数据分析与可视化指南》:从概念到实操的全解析····(附相关材料下载)
大数据·人工智能·python·数据挖掘·数据分析
ai大模型中转api测评12 分钟前
逻辑推演之巅:Qwen 3.6-Plus 全模态架构拆解与 512k 长上下文工程化实战
人工智能·架构·api
快递鸟社区13 分钟前
快递鸟全球航空航班动态查询
大数据·人工智能
俊哥V13 分钟前
每日 AI 研究简报 · 2026-04-16
人工智能·ai
2402_8548083716 分钟前
如何用 stopPropagation 阻止事件冒泡防止触发父级回调
jvm·数据库·python
2301_7826591819 分钟前
Golang怎么实现方法集与接口的匹配_Golang如何理解值类型和指针类型实现接口的区别【详解】
jvm·数据库·python