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)
相关推荐
绒绒毛毛雨6 小时前
多目标强化学习-英伟达:GDPO
人工智能·深度学习·机器学习
yao12497364737 小时前
【无标题】
python·synergy·deskflow·键鼠共享·hyprland·niri
systeminof7 小时前
亚马逊转向自研路线,AI生态控制权之争升温
人工智能
Ray Liang7 小时前
EvoMap 硬刚 OpenClaw!从基因胶囊到仿生大脑,AI 的尽头果然是生物学
人工智能·ai助手·openclaw·mindx
workflower7 小时前
原子需求的属性
python·测试用例·需求分析·软件需求
说实话起个名字真难啊7 小时前
彻底解决openclaw的tokens焦虑
人工智能·ai·openclaw
新缸中之脑7 小时前
从零实现AI代理的长期记忆
数据库·人工智能
摸鱼仙人~7 小时前
0-1背包与完全背包:遍历顺序背后的秘密
人工智能·算法
尘缘浮梦7 小时前
协程asyncio入门案例 2
开发语言·python
kronos.荒7 小时前
滑动窗口+哈希表:最小覆盖子串
数据结构·python·散列表