Ubuntu20.04 中已经安装 Pytorch 但 Import 报错 - 解决记录

news2025/7/16 8:32:40

01 问题描述

笔者使用的是 Ubuntu 20.04.3 LTS,在使用 PyTorch 训练模型的时候,torch 模块引用失败,报错信息是

OSError: /home/wang/.local/lib/python3.8/site-packages/torch/lib/../../nvidia/cublas/lib/libcublas.so.11: undefined symbol: cublasLtGetStatusString, version libcublasLt.so.11

使用的 Python 版本是 3.8.10,torch 版本是 1.3.0

在这里插入图片描述

02 分析问题

从报错信息中可以提取出几个关键信息:

  • OSError
  • /nvidia/cublas/lib/libcublas.so.11
  • cublasLtGetStatusString

不查不知道,一查这些关键词都是描述CUDA相关的内容:什么是 libcublas.so,Using the cuBLASLt API

在使用 pytorch 训练模型的时候,如果要使用 GPU 训练,需要在程序中显式调用,即使训练的物理机上有 GPU 也不会自动使用 GPU,需要在程序中调用。

但使用 CUDA 调用 GPU 和引用 Pytorch 出错有什么关系呢?

原来 Python 和 Pytorch,Pytorch 和 CUDA 都存在版本匹配问题,当然如果使用 anaconda 安装应该可以避免这也的问题,笔者使用 pip 安装所以出现了这种问题,通过查阅网上资源搞清楚了版本依赖关系

Pytorch 和 Python 之间版本匹配:

在这里插入图片描述
Pytorch 和 CUDA 之间版本匹配:

在这里插入图片描述
前面说到我们使用的 Python 版本是 3.8.10,torch 版本是 1.3.0,根据上面那个表这已经不配了,我又看了一下 CUDA 的版本结果是 11.7

在这里插入图片描述
结合报错信息中的 cublasLtGetStatusString ,CUDA 10.1 开始就用 cuBLASLt 轻量级库了。到这里,我们已经大概知道问题是出在 Pytorch 和 CUDA 版本匹配上了。

03 解决问题

知道了 Pytorch 和 CUDA 版本匹配有问题,cuda与torch的安装匹配 提供两个角度去修改版本问题。

笔者这里直接通过修改 Pytorch 版本完成对 Python 3.8 和 CUDA 11 的兼容问题,一举两得。

卸载当前版 torch,然后对照版本匹配表安装 1.8.0 的 torch 就好了。

pip3 uninstall torch
python3 -m pip install torch==1.8.0

在这里插入图片描述
最后,检验是否解决了问题

在这里插入图片描述

参考资料

CUDA的作用

1.cuBLAS开发指南中文版–简介

2.cuBLAS开发指南中文版–使用cuBLAS API

Using the cuBLASLt API

pytorch中涉及cuda的使用介绍

Ubuntu20.04安装pytorch检查cuda

cuda与torch的安装匹配


如果文章对你有帮助,别忘了一键三连呀 👍 💬 ⭐️ 。您的支持是我坚持输出的最大动力 🐮🐴🐮🐴 。


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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

C++对象和类概述

11 对象和类 11.1 过程式和面向对象编程 面向过程编程:先考虑函数,然后再细化到数据 面向对象编程:对象(数据函数) 11.2 抽象和类 在计算中,抽象是根据与用户的接口来表示信息的关键步骤。 11.2.1 什…

QT默认自带mscv2017 2019 ,配置vs2022

试验QT版本:5.14.2 所需文件: QT安装程序--qt-opensource-windows-x86-5.14.2.exe具体地址是:Index of /archive/qthttps://download.qt.io/archive/qt/Microsoft 生成工具 2022 Visual Studio 2022 IDE - 适用于软件开发人员的编程工具win…

Cholesterol胆固醇参数说明及相关研究

Cholesterol胆固醇是哺乳动物细胞中产生的一种主要甾醇,是细胞存活和增殖所必需的。它是哺乳动物细胞膜的一种成分,与膜磷脂、鞘脂和蛋白质相互作用,影响它们的行为。它也是各种基于脂质的药物递送(LBDD)系统的组成部分…

[oeasy]python0015_十六进制_hexadecimal_字节形态_hex函数

十六进制(hexadecimal) 回忆上次内容 上次数制可以转化 bin(n)可以把数字转化为 ​​2进制​ binary接收一个整数(int)得到一个二进制数形式的字符串数字在计算机中是用二进制存储的 但是展示给我们的时候用的是十进制也就是0-9这10个字符的形式都说字节是计算机存储的最小单…

基于微信小程序的自习室预约系统设计与实现-计算机毕业设计源码+LW文档

小程序开发说明 开发语言:Java 框架:ssm JDK版本:JDK1.8 服务器:tomcat7 数据库:mysql 5.7(一定要5.7版本) 数据库工具:Navicat11 开发软件:eclipse/myeclipse/idea Mav…

Me-Tetrazine-DBCO,1802908-04-8,ICG-Tetrazine四嗪类试剂知识分享

Me-Tetrazine-DBCO,Methyltetrazine-PEG4-azide,ICG-Tetrazine这几种试剂都含有四嗪,或者甲基四嗪,其主要的性能特点有哪些?西安凯新生物是国内业PEG供应商,其中包括各种规格的点击试剂,&#x…

nvm (node 版本管理器)

ps: 如果已经安装node,或者nvm,先卸载,再执行下面操作。 1. 下载nvm nvm github 下载后以管理员身份运行 setup.exe 安装就根据步骤点下一步就行了 2. 安装node nvm基础操作 使用 nvm install node版本号,但是这里有时候会报…

[附源码]java毕业设计基于的城镇住房公积金管理系统

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

Vue项目实战

Vue项目实战 1、项目介绍 1.1、对象 有Vue2、Vue3组合api基础知识,TypeScript基础知识1.2、涉及技术 CSS3 TypeScript Vue3.2 Vuex4.x Vue Router4.x Vite2.x Element-Plus1.3、技能 掌握Vue3.2语法糖的使用掌握Vue3中组合api的使用掌握组件中业务逻辑抽离的方…

第七章 Java编程-多线程

线程几乎在每个编程语言中都有,它其实是操作系统的概念,编程语言是运行在操作系统上的

RK3568平台开发系列讲解(图像篇)BMP图像处理

🚀返回专栏总目录 文章目录 一、BMP文件格式解析1.1、位图文件头(bitmap-file header)1.2、位图信息头(bitmap-information header)二、LCD上显示代码沉淀、分享、成长,让自己和他人都能有所收获!😄 📢我们今天来讲解BMP文件格式的解析。 一、BMP文件格式解析 BMP是一…

发那科机床联网

一、设备信息确认 1、确认型号 数控面板拍照确认: 此系统为:0I-TD 注:凡是系统中带i的,基本上都有网络通讯和采集功能。如果系统中带有mate字样,并且比较老可能不含网口。 2、确认通讯接口 发那科的通讯接口有两种…

【SpringBoot项目】SpringBoot项目-瑞吉外卖【day02】员工管理业务开发

文章目录前言员工管理业务开发完善登录功能问题分析代码实现功能测试新增员工需求分析数据模型代码开发功能测试统一处理异常员工信息分页查询需求分析代码开发功能测试启用/禁用员工需求分析代码实现测试编辑员工信息需求分析代码实现功能测试总结🌕博客x主页&…

VS2022 性能提升:更快的 C++ 代码索引

基于 Visual Studio 2022 17.3 版本的性能提升,我们在新的 17.4 版本中添加了更多的小优化,且听我慢慢道来。 不论你是一个工作在大型代码库下的游戏开发者,或者你在解决方案中有非常多的 C 工程,在 Visual Studio 2022 17.4 中&…

【附源码】计算机毕业设计JAVA家装建材网

项目运行 环境配置: Jdk1.8 Tomcat8.5 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: Springboot mybatis Maven Vue 等等组成,B/…

浅析DNS劫持及应对方案

DNS是网络连接中的重要一环,它与路由系统共同组成互联网上的寻址系统,如果DNS遭遇故障,“导航系统”失效,网络连接就会出现无法触达或到达错误地址的情况。由于的DNS重要作用及天生脆弱性,导致DNS自诞生之日起&#xf…

React源码解读之任务调度

React 设计体系如人类社会一般,拨动时间轮盘的那一刻,你便成了穿梭在轮片中的一粒细沙,角逐过程处处都需要亮出你的属性,你重要吗?你无可替代吗?你有特殊权限吗?没有,那不好意思&…

Autosar模块介绍:AutosarOS(5)

上一篇 | 返回主目录 | 下一篇 AutosarOS:错误处理、跟踪与调试(5)1 钩子例程2 错误处理(ErrorHook)3 系统启动(StartupHook)4 系统关闭(ShutdownHook)5 系统保护&#x…

【面试题】margin负值问题

margin-top和margin-left负值&#xff0c;元素向上、向左移动&#xff1b;margin-right负值&#xff0c;右侧元素左移&#xff0c;自身不受影响&#xff1b;margin-bottom负值&#xff0c;下方元素上移&#xff0c;自身不受影响&#xff1b; 1. margin top left为负数 <st…

0095 贪心算法,普利姆算法

import java.util.ArrayList; import java.util.HashMap; import java.util.HashSet; /* * 贪心算法 * 1.指在对问题进行求解时&#xff0c;在 每一步 选择中都采取最好或最优的选择&#xff0c;希望能够导致结果是最好或最优的算法 * 2.所得到的结果不一定是最优结果&…