Pytorch如何切换 cpu和gpu的使用详解
作者:遇到好事了 发布时间:2023-08-22 03:30:11
标签:Pytorch,切换,cpu,gpu
前言,在pytorch中,当服务器上的gpu被占用时,很多时候我们想先用cpu调试下代码,那么就需要进行gpu和cpu的切换。
方法1:x.to(device)
把 device 作为一个可变参数,推荐使用argparse进行加载:
使用gpu时:
device='cuda'
x.to(device) # x是一个tensor,传到cuda上去
使用cpu时:
device='cpu'
x.to(device)
方法2:使用x.cuda()+CUDA_VISIBLE_DEVICES
很多贴子中说,使用x.cuda() 和x.to('cuda') 虽然是等效的,但是x.cuda() 的缺点是无法动态切换cpu。然而,其实配合命令行参数CUDA_VISIBLE_DEVICES 是可以进行切换的。
在服务器上创建一个python脚本 t.py:
import torch
print(torch.cuda.device_count()) # 可用gpu数量
print(torch.cuda.is_available()) # 是否可用gpu
首先先看一下,正常运行的情况:
执行命令:python t.py
输出结果:因为服务器上有两个gpu,所以是我们想要的结果。
2
True
如果想要只使用某一块gpu,只需要在执行前加一个参数:
CUDA_VISIBLE_DEVICES=0 python t.py,例如,我们要使用gpu 0
接下来看看输出什么:是的!程序中确实只可见了一块gpu~
1
True
下面,如果我们想使用cpu呢?
CUDA_VISIBLE_DEVICES="" python t.py
输出结果:可以看到,虽然服务器上有2块cpu,通过我们设置执行参数,程序中也成功看不到了!
0
False
因此,回归正题,当我们使用x.cuda()进行分配gpu时,只需要使用torch.cuda.is_available()加一个判断即可,当想使用cpu的时候在执行程序的命令行参数进行控制:
if torch.cuda.is_available():
x= x.cuda()
来源:https://blog.csdn.net/qq_42549774/article/details/114192405
0
投稿
猜你喜欢
- 说明:本例改编自《Python编程快速上手》。例子很简单我就不多说了 直接上代码,给初学python练手用。给你6次机会猜对一个预先生成好的
- 其实r 是只读,只能读不能写,这是很明确的,但是r+是可读写,变成r+后还没太明白到底加了什么,还是照样写不了,有没有这样的体验呢,如下代码
- 一、前言这篇文章主要是记录一下php生成静态页面的大致步骤,关于页面静态化,大家想必都听说过,但是真正用的时候反而不是很多。有些页面考虑到访
- django中的超链接,在template中可以用{% url 'app_name:url_name' param%}其中a
- python和C/C++混合编程,推荐使用python的内置模块ctypes,从名字上可以看出是c,可见对C++的支持并不太好。一般的步骤:
- 本文实例为大家分享了python实现电子词典的具体代码,供大家参考,具体内容如下服务端#!/usr/bin/env python3from
- 1 from multiprocessing import Pool,Queue。其中Queue在Pool中不起作用,具体原因未明。解决方案
- function commafyback(num) { var x = num.split(','); return par
- 启发式评估法(Heuristic Evaluation)是一种用来发现用户界面设计中的可用性问题从而使这些问题作为再设计过程中的一部分被重视
- 在之前文章给大家分享后不久,就有位小伙伴跟小编说在用scrapy搭建python爬虫中出现错误了。一开始的时候小编也没有看出哪里有问题,好在
- 引用是什么在 PHP 中引用意味着用不同的名字访问同一个变量内容。这并不像 C 的指针,替代的是,引用是符号表别名。注意在 PHP 中,变量
- 一、通用爬虫通用网络爬虫是搜索引擎抓取系统(Baidu、Google、Sogou等)的一个重要组成部分。主要目的是将互联网上的网页下载到本地
- 算法复杂度分为时间复杂度和空间复杂度。其作用: 时间复杂度是指执行算法所需要的计算工作量; 而空间复杂度是指执行这个算法所需要的内存空间。
- 现代浏览器可以基于RFC 2397标准使用base64把图片进行编码,然后输出类似data:image/png;base64,iVBORw0
- 今天我来分享一些Python办公自动化的方法,欢迎收藏学习,喜欢点赞支持,欢迎畅聊。OpenpyxlOpenpyxl 可以说是 Python
- 概述今天我们要来做一个进阶的花分类问题. 不同于之前做过的鸢尾花, 这次我们会分析 102 中不同的花. 是不是很上头呀.预处理导包常规操作
- 问题简述在 Windows 系统上,我使用 Python 3.11 的 pip 工具安装 lxml 等库时会出现以下报错:error: Mi
- 新一代W3C,xhtml代码规范,大家在设计网站的时候务必遵循这一规范 ,这将对网站的优化,网站的推广,搜索引擎的友好
- 在Python的学习过程中,肯定会遇到很多安装模块的地方,可以使用easy_install安装,但是easy_install相对于pip而言
- 更新 2016/8/9:最近发现目标网站已经屏蔽了这个