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)
相关推荐
pt10431 分钟前
面向AI的Cisco UCS X-Series设计-2:Cisco UCS AI规格选型
运维·人工智能
把头塞进显示器3 分钟前
电商平台-测试报告
python·selenium·pytest
禁默3 分钟前
从一行需求到压测波峰:我用 Seed-2.1-pro-0915 从 0 交付了一套分布式任务看板
人工智能·ai·seed-2.1-pro
ShyanZh5 分钟前
【Python3基础】01-Python 环境与开发工具
python
醇氧9 分钟前
Git 合并冲突与`__pycache__` 的恩怨情仇
python·numpy·fastapi
55873 生态系统9 分钟前
技术第4篇,【架构实战】55873 双层安全风控架构:Rust 底层硬拦截 + AI 语义研判双保险设计全解
人工智能·55873全域文明生态体系·55873操作系统·全域文明生态系统·55873技术底座
天远Date Lab9 分钟前
零信任架构实战:基于天远手机在网状态V即时版构建自动化通信网关
人工智能·ai·工具分享
元岳数字人小元12 分钟前
无惧网络受限:数字人私有化部署打造离线全域服务能力
运维·人工智能·开源·人机交互·交互
kaixin_啊啊15 分钟前
Micam 多容器太吃资源?用 Go2RTC + EasyNVR 给小米摄像头换一套轻量本地录像方案
图像处理·人工智能·摄像头
具身AGI18 分钟前
具身ICL走热,物理AI 自主学习能力 多一条轴
人工智能