码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • Ubuntu20.04 中已经安装 Pytorch 但 Import 报错 - 解决记录


    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
    
    • 1
    • 2

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

    在这里插入图片描述


    如果文章对你有帮助,欢迎一键三连 👍 ⭐️ 💬 。如果还能够点击关注,那真的是对我最大的鼓励 🔥 🔥 🔥 。


    参考资料

    CUDA的作用

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

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

    Using the cuBLASLt API

    pytorch中涉及cuda的使用介绍

    Ubuntu20.04安装pytorch检查cuda

    cuda与torch的安装匹配

  • 相关阅读:
    如何提升设备投资回报率:预测性维护在制造业的应用
    SpringMVC Day 01:入门案例
    OpenAI 函数调用教程
    基于骨骼数据特征的人体行为识别方法综述
    linux下如何dhcp失败为获取到ip地址,如何设置为一个固定的地址
    游戏工作中用到的一些第3方软件和作用
    分享wind量化交易平台接口编程代码
    Promise原理、以及Promise.race、Promise.all、Promise.resolve、Promise.reject实现;
    ACL与NAT相关知识
    日常学习记录随笔-大数据之日志(hadoop)收集实战
  • 原文地址:https://blog.csdn.net/qq_41773806/article/details/127864092
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号