pytorch采用GPU加速方法

2023-10-29

在进行深度学习训练模型时,对于计算量小一些的模型,是可以在CPU上进行的。但是当计算量比较大时,我们希望利用GPU并行计算的能力去加快训练的速度。

查看GPU版本号

import torch

print(torch.__version__)  # 查看torch当前版本号

print(torch.version.cuda)  # 编译当前版本的torch使用的cuda版本号

print(torch.cuda.is_available())  # 查看当前cuda是否可用于当前版本的Torch,如果输出True,则表示可用

查看GPU数量

def try_gpu(i=0): 
    """如果存在,则返回gpu(i),否则返回cpu()"""
    if torch.cuda.device_count() >= i + 1:
        return torch.device(f'cuda:{i}')
    return torch.device('cpu')

def try_all_gpus(): 
    """返回所有可用的GPU,如果没有GPU,则返回[cpu(),]"""
    devices = [torch.device(f'cuda:{i}')
             for i in range(torch.cuda.device_count())]
    return devices if devices else [torch.device('cpu')]
# 0号GPU是否存在,10号GPU是否存在
try_gpu(), try_gpu(10), try_all_gpus()


指定GPU

import torch
from torch import nn

torch.device('gpu'), torch.cuda.device('cuda'), torch.cuda.device('cuda:1')

GPU计算张量

# 创建一个张量Y在1号GPU
Y = torch.rand(2, 3, device=try_gpu(1))
Z = X.cuda(1)  # 将X的内容复制在1号GPU的Z
print(X)
print(Z)
tensor([[1., 1., 1.],
        [1., 1., 1.]], device='cuda:0')
tensor([[1., 1., 1.],
        [1., 1., 1.]], device='cuda:1')

指定GPU计算神经网络模型

from torch import nn

net = nn.Linear(3, 1)
print(list(net.parameters())[0].device) # cpu

net.cuda(0)
print(list(net.parameters())[0].device) # cuda:0

net2 = nn.Linear(3, 1, device = torch.device('cuda' if torch.cuda.is_available() else 'cpu'))
print(list(net2.parameters())[0].device) # cuda:0

net3 = nn.Linear(3, 1).to(torch.device('cuda' if torch.cuda.is_available() else 'cpu'))
print(list(net3.parameters())[0].device) # cuda:0

net3 = net3.cpu()
print(list(net3.parameters())[0].device) # cpu

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

pytorch采用GPU加速方法 的相关文章

随机推荐

  • mysql 可以承受多少人_mysql每秒最多能插入多少条数据 ? 死磕性能压测

    前段时间搞优化 最后瓶颈发现都在数据库单点上 问DBA 给我的写入答案是在1W 机械硬盘 左右 联想起前几天infoQ上一篇文章说他们最好的硬件写入速度在2W后也无法提高 SSD硬盘 但这东西感觉从来没证实过 故一时兴起 弄台虚拟机压测起来
  • HDLBits 系列(6)——Sequential Logic(Latches and Flip-Flops)

    目录 3 2 Sequential Logic 3 2 1 Latches and Flip Flops 1 D flip flop 2 D flip flops 3 DFF with reset 4 DFF with reset valu
  • AOP常用的几种增强方式,各自的特点(代码辅助)?

    1 前置增强 又称前置通知 前置增强使用 Befor注解标识 增强方法优先于目标方法执行 前置增强方法 Before execution int mul int int 执行方法之前执行下面的方法 public void before Jo
  • vue使用vant的list组件使用

    模板代码
  • 性能测试—性能测试方案设计思路总结

    一 需求分析 1 测试目的 为什么测 目的在于测试系统相关性能能否满足业务需求 通常分以下两种情况 1 新项目上线 2 老项目优化 如果是老项目优化 可考虑是否存有历史测试方案 如果有可以参考 或许可以省事很多 2 测试对象 要测啥 测试对
  • RK开发板的USB连接(Ubuntu)

    一 安装连接工具 sudo apt get install putty 二 启动putty工具 sudo putty 三 连接usb 并查看相关的信息 查看接入的是否有usb ls dev tty 显示如下 含有usb接口 dev ttyU
  • JVM的GC ROOTS有哪些?

    jvm垃圾回收是根据可达性分析算法来判断堆里面的对象是否有用 可达性分析算法是从GC ROOTS扫描对象引用链 来筛选出有用的对象 扫面完成后 回收掉无用的对象 jvm的GC ROOTS有哪几个地方呢 1 虚拟机栈 局部变量表中引用的对象
  • 寒假训练 第三节 数据结构基础 总结

    栈 基本操作 1 判断栈空 2 判断栈满 3 进栈 4 出栈 判断栈空 操作 s gt top 1 当栈顶指向 1时说明该栈为空 判断栈满 操作 s gt top MAXEN 1 当栈顶为栈长减一时说明栈为满 进栈 s gt top s g
  • react-native之ART绘图详解

    背景 在移动应用的开发过程中 绘制基本的二维图形或动画是必不可少的 然而 考虑到Android和iOS均有一套各自的API方案 因此采用一种更普遍接受的技术方案 更有利于代码的双平台兼容 art是一个旨在多浏览器兼容的Node style
  • PF_INET AF_INET

    http blog csdn net csdn zc article details 7656445 在写网络程序的时候 建立TCP socket sock socket PF INET SOCK STREAM 0 然后再绑定本地地址或连接
  • 【C语言】简易登录注册系统(登录、注册、改密、文件操作)

    概述 本登录注册系统通过使用C语言中的结构体 函数 文件操作以及指针等 设计与实现了一个小型用户登录注册系统的登录 注册 修改密码等基本功能 本系统全部功能基本运行良好 用户界面友好 操作简单 使用方便 但系统仍然有不完善之处 例如在隐藏用
  • 【零基础学爬虫】用python爬取小说

    文章目录 前言 一 先上效果图 二 bs4学习 1 原理 2 运用 3 数据解析 4 属性定位 5 获取标签之间的文本数据 6 获取标签中的属性值 三 开始爬小说 一般步骤 1 获取url 2 UA伪装 3 获取cookie 4 请求网站
  • Python3爬虫---抓取英雄联盟的所有英雄皮肤

    usr bin env python coding utf 8 author Chris iven Python version 3 6 1 分析LOL官网行为 发现这个网页的所有数据都是经过js生成的 意思就是说 他的数据全部不在该网页里
  • 电脑如何搞副业?给大家分享五个电脑副业

    如今的电脑曾经渐渐的开端提高起来 不论我们是办公还是在家 简直每个人都是会用到这样的东西 他也是改动了我们的赚米方式 如今很多人都是在家用电脑开端赚米 那么一台电脑怎样挣米 有一台电脑怎样挣米的办法有哪些 那么接下来就给你们带来电脑挣米的办
  • my学习OC--数组对象 NSArray NSMultableArray

    数组是有序集合 只能存放对象 数组有下标 index 的概念 靠index来索引元素 下标从0开始 数组分为不可变数组 NSArray 和可变数组 NSMutableArray 不可变数组 NSArray 创建数组对象 1 创建数组对象 2
  • 求素数

    题目描述 求 100 200 之间的全部素数 输入 无 输出 100 200 之间的全部素数 一个素数占一行 样例输入 无 样例输出 101 103 107 109 113 127 131 137 139 149 151 157 163 1
  • Otsu详细算法解析

    前言 无 一 OTSU算法是什么 OTSU算法又名最大类间方差法 是由日本学者大津展之于1979 年提出 利用整副图像的直方图特性 选择全局阈值T 文字图片和背景通常会出现两个驼峰 确定一个灰度值作为阈值 将灰度值小于阈值的点作为目标 大于
  • Bootstrap,LayUI,EasyUI的对比

    Bootstrap样式更美观 更适合前端 EasyUI功能强大 样式一般 性能比bootStrap好 故后端界面用的较多
  • git push origin master和git push的区别

    1 git push origin master 指定远程仓库名和分支名 2 git push 不指定远程仓库名和分支名 这个命令看起来好像比上面那个简单 但是却是 很模糊 的 很容易混淆 不特定指出 远程仓库名和分支名 一般是使用默认配置
  • pytorch采用GPU加速方法

    在进行深度学习训练模型时 对于计算量小一些的模型 是可以在CPU上进行的 但是当计算量比较大时 我们希望利用GPU并行计算的能力去加快训练的速度 查看GPU版本号 import torch print torch version 查看tor