pytorch 如何在GPU上训练

 更新时间:2021年06月01日 10:54:06   作者:陌生的天花板  
这篇文章主要介绍了pytorch 如何在GPU上训练的操作,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

1.网络模型转移到CUDA上

net = AlexNet()
net.cuda()#转移到CUDA上

2.将loss转移到CUDA上

criterion = nn.CrossEntropyLoss()
criterion = criterion.cuda()

这一步不做也可以,因为loss是根据out、label算出来的

loss = criterion(out, label)

只要out、label在CUDA上,loss自然也在CUDA上了,但是发现不转移到CUDA上准确率竟然降低了1%

3.将数据集转移到CUDA上

这里要解释一下数据集使用方法

#download the dataset
train_set = CIFAR10("./data_cifar10", train=True, transform=data_tf, download=True)
train_data = torch.utils.data.DataLoader(train_set, batch_size=64, shuffle=True)

dataset是把所有的input,label都制作成了一个大的多维数组

dataloader是在这个大的多维数组里采样制作成batch,用这些batch来训练

    for im, label in train_data:
        i = i + 1
        im = im.cuda()#把数据迁移到CUDA上
        im = Variable(im)#把数据放到Variable里
        label = label.cuda()
        label =Variable(label)
        out = net(im)#the output should have the size of (N,10)

遍历batch的时候,首先要把拿出来的Image、label都转移到CUDA上,这样接下来的计算都是在CUDA上了

开始的时候只在转成Variable以后才迁移到CUDA上,这样在网络传播过程中就数据不是在CUDA上了,所以一直报错

训练网络时指定gpu显卡

查看有哪些可用的gpu

nvidia -smi

实时查看gpu信息1代表每1秒刷新一次

watch -n -1 nvidia -smi

指定使用的gpu

import os
# 使用第一张与第三张GPU卡
os.environ["CUDA_VISIBLE_DEVICES"] = "0,3"

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • 一文详解如何在Python中实现switch语句

    一文详解如何在Python中实现switch语句

    这篇文章主要给大家介绍了关于如何在Python中实现switch语句的相关资料,今天在学习python的过程中,发现python没有switch这个语法,所以这里给大家总结下,需要的朋友可以参考下
    2023-09-09
  • python yield关键词案例测试

    python yield关键词案例测试

    这篇文章主要介绍了python yield关键词案例测试,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-10-10
  • python中for循环把字符串或者字典添加到列表的方法

    python中for循环把字符串或者字典添加到列表的方法

    今天小编就为大家分享一篇python中for循环把字符串或者字典添加到列表的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-07-07
  • 使用tensorflow 实现反向传播求导

    使用tensorflow 实现反向传播求导

    这篇文章主要介绍了使用tensorflow 实现反向传播求导,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-05-05
  • Python中实现传递未知数量的函数参数

    Python中实现传递未知数量的函数参数

    这篇文章主要介绍了Python中实现传递未知数量的函数参数方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-02-02
  • 使用Filter过滤python中的日志输出的实现方法

    使用Filter过滤python中的日志输出的实现方法

    这篇文章主要介绍了使用Filter过滤python中的日志输出,本文给大家分享几种方法,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-07-07
  • 使用selenium模拟动态登录百度页面的实现

    使用selenium模拟动态登录百度页面的实现

    本文主要介绍了使用selenium模拟动态登录百度页面,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-05-05
  • 使用python编写简单的小程序编译成exe跑在win10上

    使用python编写简单的小程序编译成exe跑在win10上

    这篇文章主要介绍了使用python编写简单的小程序编译成exe跑在win10上的相关资料,需要的朋友可以参考下
    2018-01-01
  • 为何你的Python代码在Notepad++中只闪现一下就消失无踪?

    为何你的Python代码在Notepad++中只闪现一下就消失无踪?

    你是否曾在Notepad++中运行编写的Python代码,却发现它们瞬间消失无踪?别担心,这不是你的幻觉,在这篇指南中,我们将揭秘这一现象背后的原因,并教你如何轻松解决,让我们一起揭开这个谜团,让你的Python代码在Notepad++中安然无恙吧!
    2024-02-02
  • Python基于numpy灵活定义神经网络结构的方法

    Python基于numpy灵活定义神经网络结构的方法

    这篇文章主要介绍了Python基于numpy灵活定义神经网络结构的方法,结合实例形式分析了神经网络结构的原理及Python具体实现方法,涉及Python使用numpy扩展进行数学运算的相关操作技巧,需要的朋友可以参考下
    2017-08-08

最新评论