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)
相关推荐
tap.AI1 分钟前
图片转文字技术(二)AI翻译的核心技术解析-从神经网络到多模态融合
人工智能·深度学习·神经网络
东坡肘子2 分钟前
周日小插曲 -- 肘子的 Swift 周报 #115
人工智能·swiftui·swift
小白学大数据3 分钟前
实时监控 1688 商品价格变化的爬虫系统实现
javascript·爬虫·python
jifengzhiling5 分钟前
卡尔曼增益:动态权重,最优估计
人工智能·算法·机器学习
emfuture5 分钟前
传统劳动密集型加工厂,面对日益普及的自动化技术,应如何实现转型升级?
大数据·人工智能·智能制造·工业互联网
Zzz 小生6 分钟前
Github-Lobe Chat:下一代开源AI聊天框架,重新定义人机交互体验
人工智能·开源·github·人机交互
说私域7 分钟前
新零售第一阶段传统零售商的困境突破与二次增长路径——基于定制开发AI智能名片S2B2C商城小程序的实践研究
人工智能·小程序·零售
Darkershadow8 分钟前
Python学习之使用笔记本摄像头截屏
python·opencv·学习
Cathyqiii8 分钟前
序列建模模型原理及演进——从RNN、Transformer到SSM与Mamba
人工智能·rnn·深度学习·transformer
极客BIM工作室10 分钟前
大模型的发展历程: 从文本到音视频生成的技术演进
人工智能·机器学习