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)
相关推荐
安思派Anspire6 分钟前
难度分五级的 AI 智能体(附完整代码实现)
人工智能
东哥说AI15 分钟前
AI的“魔法”已过,真正的“内功”比拼才刚刚开始
人工智能·agent·ai编程
Python技术极客17 分钟前
Python 玩转 Excel:四大神器横向评测与实战指南
python
API_technology20 分钟前
亚马逊 API 实战:商品详情页实时数据采集接口开发与调用
大数据·开发语言·python·数据挖掘
kcarly22 分钟前
如何科学测算AI业务场景所需算力服务器?——以Qwen3 32B模型与海光K100为例
运维·服务器·人工智能
饼干哥哥37 分钟前
出海赚美金,用八爪鱼RPA+AI采集分析Reddit信息做TikTok投放素材建议分析
人工智能
JavaEdge在掘金37 分钟前
别再裸写 parseFrom() 了!这才是 MQTT + Protobuf 消费的正确姿势!
python
nuclear201138 分钟前
使用 Python 在 Word 文档中插入数学公式 - 详解
python·插入数学公式到word文档·添加数学表达式到word文档·给word文档添加数学公式·mathml数学公式·latex数学公式
Johny_Zhao1 小时前
企业级LDAP-RADIUS深度集成高可用方案
linux·网络·python·网络安全·信息安全·云计算·shell·cisco·系统运维
这里有鱼汤1 小时前
分享给大家20个我每天都在用的Pandas技巧,能帮你省下超多时间,真的!
后端·python