pytorch GPU cuda 使用 报错 整理
GPU 使用、报错整理
- 1. 使用指定GPU(单卡)
- 1.1 方法1:os.environ['CUDA_VISIBLE_DEVICES']
- 1.2 方法2:torch.device('cuda:2')
- 1.3 报错1:RuntimeError: CUDA error: invalid device ordinal CUDA kernel errors might be asynchronously reported
- 1.4 torch.load报错:RuntimeError: CUDA out of memory...
- 2. 使用指定GPU(多卡 DataParallel)
- 2.1 正常DP使用(未测试)
- 2.2 pyg中DP的使用
1. 使用指定GPU(单卡)
1.1 方法1:os.environ[‘CUDA_VISIBLE_DEVICES’]
os.environ['CUDA_VISIBLE_DEVICES'] = '2'
model = Net().to('cuda')
data = data.to('cuda')
1.2 方法2:torch.device(‘cuda:2’)
device = torch.device('cuda:2')
model = Net().to(device)
data = data .to(device)
1.3 报错1:RuntimeError: CUDA error: invalid device ordinal CUDA kernel errors might be asynchronously reported
解决方法:方法1和方法2不要混着使用
1.4 torch.load报错:RuntimeError: CUDA out of memory…
解决方法:
1)显存不够只能换卡
2)即使使用方法2指定设备,torch.load也默认在0卡(保存卡)上加载。所以,可以使用方法1指定gpu,或torch.load(path, map_location=lambda storage, loc: storage.cuda(2))
2. 使用指定GPU(多卡 DataParallel)
2.1 正常DP使用(未测试)
DP的使用很简单,使用DataParallel将模型包裹住即可,训练代码与单卡一致。
代码:
import torch
from torch.nn import DataParallel
model = Model()
model = DataParallel(model, device_ids = [0, 1])
2.2 pyg中DP的使用
注意:使用torch geometric(pyg)要用torch_geometric.nn里的DataListLoader!!!
代码:
device_ids = [0, 2, 3]
# 需指定主卡,默认是0卡,不指定device会报错:RuntimeError: Expected all tensors to be on the same device, but found at least two devices, cuda:2 and cuda:0!
device = torch.device(f'cuda:{device_ids[0]}')
model = Net()
model = DataParallel(model, device_ids = device_ids)
model.to(device)
train_dataset = MyDataset(xx)
train_loader = DataListLoader(train_dataset, batch_size=bs, shuffle=True)def run_a_train_epoch(model, data_loader):model.train()for _, data_list in enumerate(data_loader):pred = model(data_list).float()y = torch.tensor([data.y for data in data_list]).to(pred.device)
相关文章:
pytorch GPU cuda 使用 报错 整理
GPU 使用、报错整理 1. 使用指定GPU(单卡)1.1 方法1:os.environ[CUDA_VISIBLE_DEVICES]1.2 方法2:torch.device(cuda:2)1.3 报错1:RuntimeError: CUDA error: invalid device ordinal CUDA kernel errors might be asy…...
python + Pytest + requests 的接口自动化步骤
pythonpytestrequestallureyaml接口自动化测试项目实战 开发环境准备 1. jdk 下载 Java官网下载地址:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html 安装: https://blog.csdn.net/VA_AV/article/details/138…...

基于若依的ruoyi-nbcio流程管理系统修正自定义业务表单的回写bug
更多ruoyi-nbcio功能请看演示系统 gitee源代码地址 前后端代码: https://gitee.com/nbacheng/ruoyi-nbcio 演示地址:RuoYi-Nbcio后台管理系统 http://218.75.87.38:9666/ 更多nbcio-boot功能请看演示系统 gitee源代码地址 后端代码: h…...

GD32 MCU上电跌落导致启动异常如何解决
大家是否碰到过MCU上电过程中存在电源波动或者电压跌落导致MCU启动异常的问题?本视频将会为大家讲解可能的原因以及解决方法: GD32 MCU上下电复位波形如下图所示,上电过程中如果存在吃电的模块,比如wifi模块/4G模块/开启某块电路…...

安防视频监控/视频汇聚EasyCVR平台浏览器http可以播放,https不能播放,如何解决?
安防视频监控/视频集中存储/云存储/磁盘阵列EasyCVR平台基于云边端一体化架构,兼容性强、支持多协议接入,包括国标GB/T 28181协议、部标JT808、GA/T 1400协议、RTMP、RTSP/Onvif协议、海康Ehome、海康SDK、大华SDK、华为SDK、宇视SDK、乐橙SDK、萤石云SD…...

rust + python+ libtorch
1: 环境,ubuntu 1.1 rust : rust-1.79.0 (在官方下载linux版本后,解压文件夹,内部有个install的sh文件,可安装) 安装成功测试:cargo --version 1.2 python3.10 (直接使用apt install pytho…...
ts检验-变量的类型不会包含 undefined的几种处理方法
文章目录 1. 确认索引是否存在2. 使用非空断言(Non-null assertion)3. 使用默认值4. 类型断言(Type Assertion)综合示例 import { AxiosPromise } from axios;type ApiFunction (params: any) > AxiosPromise<any>;type…...

springboot 集成minio,启动报错
springboot 集成 minio 8.5.10 报错 *************************** APPLICATION FAILED TO START *************************** Description: An attempt was made to call a method that does not exist. The attempt was made from the following location: io.minio.S3Base.…...
bignumber.js库,解决前端小数精度问题
bignumber.js 是一个 JavaScript 库,用于执行任意精度的十进制运算,特别适合处理大数字和需要高精度运算的情况。以下是一些 bignumber.js 库中的常用方法及其简要解释: 初始化 首先,你需要安装 bignumber.js 库: n…...

Java爬虫安全策略:防止TikTok音频抓取过程中的请求被拦截
摘要 在当今互联网时代,数据采集已成为获取信息的重要手段。然而,随着反爬虫技术的不断进步,爬虫开发者面临着越来越多的挑战。本文将探讨Java爬虫在抓取TikTok音频时的安全策略,包括如何防止请求被拦截,以及如何提高…...
通过手机控制家用电器的一个程序的设计(一)
一、概述 设计一款安卓平台上的家庭智能控制软件,通过语音识别指令控制家用电器。该软件结合离线语音识别技术、红外线和WIFI通讯技术,实现对家电的智能控制,如开关机、调温度、调频道等操作。 二、主要功能模块 离线语音识别模块 功能&…...

批量提取PDF指定区域内容到 Excel , 根据PDF文件第一行文字来自动重命名v1.3-附思路和代码实现
本次文章更新内容,图片以及扫描的PDF也可以支持批量提取指定区域内容了,主要是通过截图指定区域,然后使用OCR来识别该区域的文字来实现的,所以精度可能会有点不够,但是如果是数字的话,问题不大;…...

【持续集成_05课_Linux部署SonarQube及结合开发项目部署】
一、Linux下安装SonarQube 1、安装sonarQube 前置条件:sonarQube不能使用root账号进行启动,所以需要创建普通用户及 其用户组 1)创建组 2)添加用户、组名、密码 3)CMD上传qube文件-不能传到home路径下哦 4)…...
人像视频预处理【时间裁剪+画面裁切+调整帧率】
在视频处理中,cut(裁剪)、crop(画面裁切)和fps(帧率调整)这三个操作的顺序安排对最终的视频质量和效率有重要影响。以下是一种推荐的顺序和理由,旨在提高效率和减少错误:…...
SpringBoot+HttpClient实现文件上传下载
服务端:SpringBoot Controller package com.liliwei.controller;import java.io.File; import java.io.FileInputStream; import java.io.IOException;import javax.servlet.http.HttpServletResponse;import org.springframework.http.HttpHeaders; import org.s…...

QT--控件篇四
一、对话框 在软件开发中,对话框(Dialog)是一种常见的用户界面元素,用于与用户进行交互和获取信息。它通常以模态或非模态的形式出现,模态对话框会阻止用户与应用程序的其他部分交互,直到对话框关闭为止&a…...
opencv—常用函数学习_“干货“_2
目录 五、矩阵计算函数 归一化矩阵 (normalize) 转置矩阵 (transpose) 求矩阵的逆 (invert) 翻转矩阵 (flip) 旋转矩阵 (rotate) 求矩阵的行列式 (determinant) 求矩阵的迹 (trace) 求矩阵的特征值和特征向量 (eigen) 六、代数运算 矩阵加法 (add) 矩阵减法 (subtra…...
解析CSS与JavaScript的使用方法及ECMAScript语法规则
一、CSS的三种使用方式 CSS(层叠样式表)用于定义网页的样式和布局。以下是CSS的三种使用方式: 1. 内联样式 内联样式是最直接的应用方式,它通过HTML标签的style属性来定义。 代码示例: <h1 style"color: …...
从零开始学习嵌入式----结构体struct和union习题回顾
一、通过结构体和自定义函数实现成绩从大到小的排序,要求在主函数内定义结构体数组。 #include <stdio.h> //定义一个结构体类型 typedef struct Student {int age;char name[32];float score; } STU; //定义一个函数实现成绩从小到大的排序 void fun(STU *p…...
建筑产业网元宇宙的探索与实践
在数字化浪潮的推动下,建筑产业网正迈入一个全新的元宇宙时代。这一变革不仅为建筑设计、施工与管理带来了革新,也为整个行业注入了新的活力与创造力。本文将深入探讨建筑产业网元宇宙的特点、应用及未来趋势,带您领略其在建筑行业中的独特魅…...
Qt Widget类解析与代码注释
#include "widget.h" #include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget) {ui->setupUi(this); }Widget::~Widget() {delete ui; }//解释这串代码,写上注释 当然可以!这段代码是 Qt …...

uniapp微信小程序视频实时流+pc端预览方案
方案类型技术实现是否免费优点缺点适用场景延迟范围开发复杂度WebSocket图片帧定时拍照Base64传输✅ 完全免费无需服务器 纯前端实现高延迟高流量 帧率极低个人demo测试 超低频监控500ms-2s⭐⭐RTMP推流TRTC/即构SDK推流❌ 付费方案 (部分有免费额度&#x…...
Axios请求超时重发机制
Axios 超时重新请求实现方案 在 Axios 中实现超时重新请求可以通过以下几种方式: 1. 使用拦截器实现自动重试 import axios from axios;// 创建axios实例 const instance axios.create();// 设置超时时间 instance.defaults.timeout 5000;// 最大重试次数 cons…...
Go 语言并发编程基础:无缓冲与有缓冲通道
在上一章节中,我们了解了 Channel 的基本用法。本章将重点分析 Go 中通道的两种类型 —— 无缓冲通道与有缓冲通道,它们在并发编程中各具特点和应用场景。 一、通道的基本分类 类型定义形式特点无缓冲通道make(chan T)发送和接收都必须准备好࿰…...

推荐 github 项目:GeminiImageApp(图片生成方向,可以做一定的素材)
推荐 github 项目:GeminiImageApp(图片生成方向,可以做一定的素材) 这个项目能干嘛? 使用 gemini 2.0 的 api 和 google 其他的 api 来做衍生处理 简化和优化了文生图和图生图的行为(我的最主要) 并且有一些目标检测和切割(我用不到) 视频和 imagefx 因为没 a…...
【无标题】路径问题的革命性重构:基于二维拓扑收缩色动力学模型的零点隧穿理论
路径问题的革命性重构:基于二维拓扑收缩色动力学模型的零点隧穿理论 一、传统路径模型的根本缺陷 在经典正方形路径问题中(图1): mermaid graph LR A((A)) --- B((B)) B --- C((C)) C --- D((D)) D --- A A -.- C[无直接路径] B -…...
第7篇:中间件全链路监控与 SQL 性能分析实践
7.1 章节导读 在构建数据库中间件的过程中,可观测性 和 性能分析 是保障系统稳定性与可维护性的核心能力。 特别是在复杂分布式场景中,必须做到: 🔍 追踪每一条 SQL 的生命周期(从入口到数据库执行)&#…...

破解路内监管盲区:免布线低位视频桩重塑停车管理新标准
城市路内停车管理常因行道树遮挡、高位设备盲区等问题,导致车牌识别率低、逃费率高,传统模式在复杂路段束手无策。免布线低位视频桩凭借超低视角部署与智能算法,正成为破局关键。该设备安装于车位侧方0.5-0.7米高度,直接规避树枝遮…...

高考志愿填报管理系统---开发介绍
高考志愿填报管理系统是一款专为教育机构、学校和教师设计的学生信息管理和志愿填报辅助平台。系统基于Django框架开发,采用现代化的Web技术,为教育工作者提供高效、安全、便捷的学生管理解决方案。 ## 📋 系统概述 ### 🎯 系统定…...
6️⃣Go 语言中的哈希、加密与序列化:通往区块链世界的钥匙
Go 语言中的哈希、加密与序列化:通往区块链世界的钥匙 一、前言:离区块链还有多远? 区块链听起来可能遥不可及,似乎是只有密码学专家和资深工程师才能涉足的领域。但事实上,构建一个区块链的核心并不复杂,尤其当你已经掌握了一门系统编程语言,比如 Go。 要真正理解区…...