如何利用GPU训练模型并在CPU使用已经训练好的模型(PyTorch)

本文详细介绍了如何在PyTorch中利用GPU运行程序,包括检查GPU可用性、设置设备、转换模型和数据。同时,阐述了如何将训练好的GPU模型迁移到CPU上继续使用,以及数据加载的优化技巧。适合PyTorch初学者参考。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

PART 1: 使用GPU运行程序的方法

a 首先确定计算机或者服务器有可以使用的GPU

device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
device

注意:
a) 只有一块GPU则使用:

device = torch.device("cuda" if torch.cuda.is_available() else "cpu")

b) 有多块GPU则使用:

device = torch.device("cuda:1" if torch.cuda.is_available() else "cpu")

cuda:1----定义使用GPU1,GPU的数量通常从0开始排序
c) 获取能够使用的GPU数量

`torch.cuda.device_count()`

b 将网络转为cuda模式

net = Net().to(device)

注意:Net() 是已经定义好的网络类,用Net()来初始化net

c 将数据转为cuda模式

data.to(device)                #将数据转化为使用指定的GPU可计算形式0
data.cpu()                       #将GPU可计算的形式的数据转化为CPU的可计算形式

注意:
在使用GPU进行计算时,要搞清楚何时使用什么样式的数据,在计算时才不会出错

PART 2: CPU使用利用GPU训练好的模型

a 首先定义CPU计算

device = torch.device('cpu')

b 定义一个相同的在CPU情况下的网络

net = Net()

c 导入网络参数,并指定参数map_location=device,即网络的参数映射到基于CPU计算的网络

net.load_state_dict(torch.load("(已经训练好并且保存下来的模型地址).pkl", map_location=device))

下面就可以在CPU上直接使用GPU训练好的模型了!

PART 3: 几个小技巧

1)数据加载

data_loader = Data.DataLoader(dataset, batch_size=4, shuffle=True,
                              num_workers=8,pin_memory=True)

pin_memory=True,这里的参数将数据定义为锁页内存,这样转移到GPU上的速度会更快一点

2)需要什么在GPU上运行,就将什么内容传到GPU上。

.to(device)

PyTorch初学者,请多指教!!!

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值