【Pytorch】PytorchCPU版或GPU报错异常处理(10X~4090D)

Pytorch为CPU版或GPU使用报错异常处理

文章目录

  • Pytorch为CPU版或GPU使用报错异常处理
    • 0.检查阶段
    • 1. 在conda虚拟环境中安装了torch
    • 2.卸载cpuonly
    • 3.从tsinghua清华源安装不完善误为cpu版本
    • 4.用tsinghua清华源安装成cpu错误版本
    • 5.conda中torch/vision/cudatoolkit版本与本机cuda版本不配套
    • 6.总结

最新买的4090d到货啦!开始快乐输出o( ̄▽ ̄)ブ
在进行实验时想把cpu版的yolov5使用gpu来跑,结果出了巨多麻烦!
首先是切换成gpu,把pytorch及yolov5全套都安装完毕后,就只剩最后一步了
打开train.py 搜索找到device,大概在400~500行之间将default参数改为device = “0”,注意加引号,后边代表的是不写就默认用cpu(慢的要死真的还容易炸掉),写0是使用1个gpu,10X的4G也挺难绷,但是跑是没问题,4090的24G相对很棒,但尺寸or参数太大还是会炸,而且会炸出来奇怪的异常,且按下不表。
改完后然后直接运行train.py,在输出阶段如果可以看到显卡型号和GPU,说明已经成功调用GPU了
在这里插入图片描述那运算速度相当快:
在这里插入图片描述
但是!在此之前结果出现了错误,一大堆奇怪的报错

0.检查阶段

查看是否能使用gpu

import torch
torch.device('cpu'), torch.device('cuda'), torch.device('cuda:1') # 分别是访问CPU,访问第0个GPU,访问第1个GPU。第 𝑖 块GPU( 𝑖 从0开始)
print(torch.cuda.device_count()) # 查询可用gpu的数量。
print(torch.cuda.is_available())# 查询gpu是否可用

看torch版本

import torch
print(torch.__version__)

1. 在conda虚拟环境中安装了torch

一般命令都可以正常使用,但是使用cuda的命令torch.cuda.is_available()则输出False。
该问题的根本原因是CUDA环境与Torch版本不匹配,因此最直接的解决方式就是使用官方推荐的版本进行适配。
查看本机安装的cuda版本,在虚拟环境下一定以nvcc -V查到的版本为主

nvcc -V

有些人可能只是cudatoolkit版本对不上,如果运气好,只针对cudatoolkit进行版本匹配即可完成,

2.卸载cpuonly

1.用conda list 看看有没有cpuonly这个包,有的话删掉,这个包是装不上gpu版本的罪魁祸首。
conda uninstall cpuonly
2.装pytorch cudatoolkit(新建一个anaconda环境,或者把环境清空,注意版本号不要写错,清华源不是很智能,一定要加上详细的版本号搭配)

conda install python==3.12
conda install pytorch==2.2.2 cudatoolkit==11.8.0
附注:pip安装方式
pip install torch==2.2.2+cu121 torchvision==0.17.2+cu121 torchaudio==2.2.2+cu121 -f https://download.pytorch.org/whl/torch_stable.html

3.从tsinghua清华源安装不完善误为cpu版本

如果想要新建环境的话直接换源处理
1.可能因conda换源的不完善
下面是完整的国内清华源文件.condarc内容,打开你的电脑里的.condarc文件直接复制就行。
ubuntu 的话命令行 sudo vim ~/.condarc可以直接打开编辑,win10的话一般在C:\Users\用户名下面。

channels:
  - defaults
show_channel_urls: true
channel_alias: http://mirrors.tuna.tsinghua.edu.cn/anaconda
default_channels:
  - http://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
  - http://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free
  - http://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r
  - http://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/pro
  - http://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/msys2

  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/
custom_channels:
  conda-forge: http://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  msys2: http://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  bioconda: http://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  menpo: http://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  pytorch: http://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  simpleitk: http://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud

2. 在conda 里搜寻可以安装的pytorch版本
更新最新版的,选择是pytorch2.2.2,python3.12,cudatoolkit11.8的搭配。

conda search pytorch

3. 选择直接安装这三个包。
注意cudatoolkit版本号可能需要精确到比如11.8才会安装的比较顺利。可以conda search cudatoolkit来查看当前库里能安装的cudatoolkit版本。

conda search cudatoolkit
conda install python==3.12
conda install pytorch==2.2.2 cudatoolkit==11.8

然后编写python代码测试下看看显卡能不能用,命令行里可以先输入python进入代码编写模式。返回Ture的话代表安装gpu版本成功。

import torch
print(torch.cuda.is_available())

4.用tsinghua清华源安装成cpu错误版本

如果发现是CPU,并且在发现前已经执行类似于下载了大量依赖,不想再重新弄的

pip install -r requirements.txt  -i https://pypi.tuna.tsinghua.edu.cn/simple 

把已经安装好的cpu版本手动替换成gpu版本。

1.没有安pytorch的话不论cpugpu首先是下载,执行官方给的建议方式:
Start Locally | PyTorch
2.如果默认是用清华源下载的话可能会推送cpu版本的pytorch
3.我们可以先下载cpu的版本,然后手动替换成gpu版本。
安装完cpu版本后用import torch 实验一下,不报错的话说明cpu版本安装成功,报错的话则不能进行下一步。

import torch

4.去清华镜像下载离线安装包
不报错证明ok,那么conda成功安装完cpu的版本后,去conda清华源找到对应的pytorch gpu版本(cuda版本)
清华大学开源软件镜像站
清华源conda 安装gpu版本的pytorch总是推送cpu版本解决办法
网站资源包比较多,可以用Ctrl+F搜索,找pytorch以及附属包点下载
5.离线安装
下载完成后,激活conda 环境, cd 到下载的文件目录,安装

conda install --offline pytorch-2.10.0-py3.6_cuda10.2_cudnn7.6.5_0.tar.bz2
conda install --offline torchaudio-0.10.0-py36_cu102.tar.bz2
conda install --offline torchvision-0.11.0-py36_cu102.tar.bz2

6.验证检查
conda list,查看是否已经被替换。替换完成就行了,不要在用conda install pytorch torchvision torchaudio cudatoolkit=10.2 指令下载了,因为conda 还是会推送cpu的包,会被替换掉。。。。。。
在这里插入图片描述
换之前,用import torch不报错,但显示无GPU可跑,仔细一看是CPU!根本跑不动一点
在这里插入图片描述
可能的报错情况:pytorch和CUDA版本不一致,不是最新的,直接卡住import torch,第一步就报错(见下方介绍),处理方法为全更新到最新 or 找适配cuda的pytorch版本
在这里插入图片描述
安装最新的后终于能够跑起来,不知道安装什么才匹配的不妨多下载几个试试

在这里插入图片描述
安装的是上面↑这些,失败的是下面↓这些(版本不匹配)
在这里插入图片描述

5.conda中torch/vision/cudatoolkit版本与本机cuda版本不配套

会爆出连import torch都打不开的情况,错误描述:

OSError: 
[WinError 126] 找不到指定的模块。Error loading 
“D:\Anaconda3\envs\MyCode\Lib\site-packages\torch\lib\caffe2_detectron_ops_gpu.dll” 
or one of its dependencies

首先可以考虑的是安装Microsoft Visual C++ Redistributable。
如果依旧未能解决。这个error提示的是找不到caffe2_detectron_ops_gpu.dll,这个文件尾缀前面加了gpu,也许是之前未安装cudatoolkit的缘故。
使用官网给的命令,重新把缺少的cudatoolkit和其他包安装一下。

conda install pytorch torchvision torchaudio cudatoolkit=10.2 -c pytorch

注意安装的时候也是版本对应。

6.总结

通过以上应用基本上能够解决Pytorch因为清华源错误安装成为CPU版本,或者其他原因想换成GPU版本的难题。
也能适用于一些GPU版本下显示无法使用GPU,检验得到false,甚至import torch报错根本进不去检测页面的问题。
换到GPU上用4090d跑是真的迅速又开心!希望大家的烦恼也能顺利解决√

嘛,如果对您有帮助的话就开心的复制吧,整理不易转载请注明qwq!
如果有更好的建议或意见欢迎补充!
我是亓云鹏(亓Qí),努力与大家一同分享算法的快乐!

每博一图(1/1)↓
在这里插入图片描述
Reference:
清华源conda 安装gpu版本的pytorch总是推送cpu版本解决办法

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/561474.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

安装第三方包报错 import pcapy ... ImportError: DLL load failed: 找到不到指定的模块——解决办法

1、问题描述 安装pcapy时,安装正常,但引用失败。具体过程如下:下载pcapy,下载地址:pcapy PyPI ​下载WinPcap开发工具包,下载地址:WinPcap 的 开发人员资源 ​安装pcapy,进入\pcap…

达梦数据库的DMRMAN工具-管理备份(备份集校验)

达梦数据库的DMRMAN工具-管理备份&#xff08;备份集校验&#xff09; DMRMAN 中使用 CHECK 命令对备份集进行校验&#xff0c;校验备份集是否存在及合法。 语法如下&#xff1a; CHECK BACKUPSET <备份集目录> [DEVICE TYPE <介质类型> [PARMS <介质参数>…

企业网盘搭建——LNMP

php包链接&#xff1a;https://pan.baidu.com/s/1RElYTQx320pN6452N_7t1Q?pwdp8gs 提取码&#xff1a;p8gs 网盘源码包链接&#xff1a;https://pan.baidu.com/s/1BaYqwruka1P6h5wBBrLiBw?pwdwrzo 提取码&#xff1a;wrzo 目录 一.手动部署 二.自动部署 一.手动部署 …

一次Redis访问超时的“捉虫”之旅

01 引言 作为后端开发人员&#xff0c;对Redis肯定不陌生&#xff0c;它是一款基于内存的数据库&#xff0c;读写速度非常快。在爱奇艺海外后端的项目中&#xff0c;我们也广泛使用Redis&#xff0c;主要用于缓存、消息队列和分布式锁等场景。最近在对一个老项目使用的docker镜…

Springboot+Vue项目-基于Java+MySQL的校园周边美食探索及分享平台系统(附源码+演示视频+LW)

大家好&#xff01;我是程序猿老A&#xff0c;感谢您阅读本文&#xff0c;欢迎一键三连哦。 &#x1f49e;当前专栏&#xff1a;Java毕业设计 精彩专栏推荐&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb; &#x1f380; Python毕业设计 &…

MySQL数据库企业级开发技术(下篇)

使用语言 MySQL 使用工具 Navicat Premium 16 代码能力快速提升小方法&#xff0c;看完代码自己敲一遍&#xff0c;十分有用 拖动表名到查询文件中就可以直接把名字拉进来中括号&#xff0c;就代表可写可不写 目录 1. 视图 1.1 需要视图的原因 1.2 视图介绍 1.2.1 …

[笔试强训day03]

文章目录 BC149 简写单词dd爱框框除2&#xff01; BC149 简写单词 BC149 简写单词 #include<iostream> #include<string>using namespace std; string s; int main() {while(cin>>s){if(s[0]>a&&s[0]<z) cout<<char(s[0]-32);else cout…

元数据管理Atlas

文章目录 一、Atlas概述1、Atlas入门2、Atlas架构原理 二、Atlas安装1、安装环境准备1.1 安装Solr-7.7.31.2 Atlas2.1.0安装 2、Atlas配置2.1 Atlas集成Hbase2.2 Atlas集成Solr2.3 Atlas集成Kafka2.4 Atlas Server配置2.5 Kerberos相关配置2.6 Atlas集成Hive 3、Atlas启动 三、…

Python可视化数据分析-柱状图/折线图

一、前言 使用python编写一个图表生成器&#xff0c;输入各公司的不良品数量&#xff0c;可以在一张图中同时展示数据的柱状图和折线图。 效果如下&#xff1a; 二、基础知识 绘制折线图和柱状图主要使用到了 pyecharts.charts 模块中的 Line 和 Bar 类。它们允许用户通过简…

拓展网络技能:利用lua-http库下载www.linkedin.com信息的方法

引言 在当今的数字时代&#xff0c;网络技能的重要性日益凸显。本文将介绍如何使用Lua语言和lua-http库来下载和提取LinkedIn网站的信息&#xff0c;这是一种扩展网络技能的有效方法。 背景介绍 在当今科技潮流中&#xff0c;Lua语言以其轻量级和高效的特性&#xff0c;不仅…

【单调栈】力扣85.最大矩形

好久没更新了 ~ 我又回来啦&#xff01; 两个好消息&#xff1a; 我考上研了&#xff0c;收到拟录取通知啦&#xff01;开放 留言功能 了&#xff0c;小伙伴对于内容有什么疑问可以在文章底部评论&#xff0c;看到之后会及时回复大家的&#xff01; 前面更新过的算法&#x…

经典目标检测YOLOV1模型的训练及验证

1、前期准备 准备好目录结构、数据集和关于YOLOv1的基础认知 1.1 创建目录结构 自己创建项目目录结构&#xff0c;结构目录如下&#xff1a; network CNN Backbone 存放位置 weights 权重存放的位置 test_images 测试用的图…

OpenFeign使用demo

OpenFeign使用demo 1. OpenFeign的作用2. OpenFeign使用demo2.1 使用方2.2 提供方 1. OpenFeign的作用 原来我们调用别人的接口&#xff0c;通常都是通过Http请求来(如下图1)&#xff0c;而现在有了OpenFeign我们就可以像调用接口的方式来完成调用。 OpenFeign 并不是一个严格…

Leetcode算法训练日记 | day31

专题九 贪心算法 一、分发饼干 1.题目 Leetcode&#xff1a;第 455 题 假设你是一位很棒的家长&#xff0c;想要给你的孩子们一些小饼干。但是&#xff0c;每个孩子最多只能给一块饼干。 对每个孩子 i&#xff0c;都有一个胃口值 g[i]&#xff0c;这是能让孩子们满足胃口的…

Matlab|含sop的配电网重构(含风光|可多时段拓展)

目录 1 主要内容 2 部分程序 3 下载链接 1 主要内容 之前分享了很多配电网重构的程序&#xff0c;每个程序针对场景限定性比较大&#xff0c;程序初学者修改起来难度较大&#xff0c;本次分享一个基础程序&#xff0c;针对含sop的配电网重构模型&#xff0c;含风电和光伏&am…

LeetCode刷题总结 | 图论2—深度优先搜索广度优先搜索较为复杂应用

深搜广搜的标准模版在图论1已经整理过了&#xff0c;也整理了几个标准的套模板的题目&#xff0c;这一小节整理一下较为复杂的DFS&BFS应用类问题。 417 太平洋大西洋水流问题&#xff08;medium&#xff09; 有一个 m n 的矩形岛屿&#xff0c;与 太平洋 和 大西洋 相邻…

算法打卡day52|单调栈篇03| 84.柱状图中最大的矩形

算法题 Leetcode 84.柱状图中最大的矩形 题目链接:84.柱状图中最大的矩形 大佬视频讲解&#xff1a;84.柱状图中最大的矩形视频讲解 个人思路 这题和接雨水是相似的题目&#xff0c;原理上基本相同&#xff0c;也是可以用双指针和单调栈解决&#xff0c;只是有些细节不同。…

树莓派3B长时间不操作屏幕息屏无信号处理

树莓派外接显示器&#xff0c;需长时间展示某个网页&#xff0c;经过一段时间&#xff0c;显示器屏幕会黑掉显示无信号。 需修改 /etc/lightdm/lightdm.conf 配置文件中新增如下两行并重启。 xserver-commandX -s 0 dpms sleep-inactive-timeout0

C++相关概念和易错语法(7)(初始化列表、隐式类型转换、友元)

1.初始化列表 初始化列表是集成在构造函数里面的&#xff0c;对象在创建的时候一定会调用构造函数&#xff08;就算不显式定义&#xff0c;也会自动生成并调用&#xff09;。初始化列表就是这些对象的成员变量在创建的时候初始化的地方。 下面是使用的例子&#xff0c;可以先…

CCIE-16-PIM

目录 实验条件网络拓朴实验环境实验目的 开始实验实验1&#xff1a;PIM-DM配置PIM域中的路由&#xff0c;开启PIM-DM组播路由功能&#xff0c;验证组播情况 实验2&#xff1a;PIM-SM&#xff08;静态RP&#xff09;配置PIM域中的路由&#xff0c;开启PIM-SM组播路由功能&#x…