问题

今天上80服务器跑mdistiller的代码时,意外发现torch、numpy都不能用了T_T

以torch为例,出现如下报错情况



以numpy为例,出现如下报错情况

我们先看看报错信息,这个报错来自Inter MKL。Inter MKL全称是The Intel Math Kernel Library,它是一个主要是用于科学计算的共享库,提供了很多与数学优化程序,例如向量矩阵操作什么的。

报错信息说明我们在导入torch/numpy库时,无法载入libmkl_core.so.和libmkl_rt.so.1.

这两个文件以so结尾,属于共享库文件。

在Linux系统上一般以.so文件扩展名(shared object), 在MacOS上以.dylib为文件扩展名, 在Windows上以.dll (dynamic link library)为文件扩展名。

共享库的出现的一个原因是防止重复造轮子,它允许多个程序使用同一份代码

这样程序里面便不需要重复写相同的代码,只需要让程序指向共享库即可,提高了程序的可复用性,也让程序变得更modular了。

解决过程

从报错信息来看,它说我们无法载入某个文件。首先想到的是先确定这个文件是否存在,这里以libmkl_rt.so.1.来进行分析。

通过执行以下命令,我们来看看它是否存在

ls /home/jyg/anaconda3/envs/mdisPy37/lib/python3.7/site-pa
ckages/mkl/../../../libmkl_rt.so.1

在我的机器上运行结果如下,libmkl_rt.so.1.确实存在

那么如何让numpy或者torch库能够正确的找到Inter MKL共享库并载入它需要的共享文件呢?

这就不得不说一下LD_LIBRARY_PATH环境变量了。

LD_LIBRARY_PATH是Linux系统上一个与动态链接有关的环境变量。如果将各个程序想象成大小不一的拼图,那么链接的过程就是将这些杂乱的拼图正确地拼合起来。

当某个库或者程序需要用到其他的共享库时,在搜索标准库目录,例如/lib或者/usr/lib之前,操作系统会首先从由LD_LIBRARY_PATH指定路径下进行搜索。

因此,我们只需要将路径/home/jyg/anaconda3/envs/mdisPy37/lib添加到LD_LIBRARY_PATH即可,即执行如下命令

export LD_LIBRARY_PATH=/home/jyg/anaconda3/envs/mdisPy37/l
ib:$LD_LIBRARY_PATH

现在便能正常导入numpy或者torch库了

不要忘了,我们现在只是在当前session中临时设置了LD_LIBRARY_PATH的值,如果当前会话结束了,重新开一个会话时还需要重新export。

因此,我们可以考虑执行如下命令永久改变LD_LIBRARY_PATH的值

echo "export LD_LIBRARY_PATH=/home/jyg/anaconda3/envs/mdisPy37/lib:$LD_LIBRARY_PATH" >> ~/.bashrc
source ~/.bashrc

报错Intel MKL FATAL ERROR: Cannot load libmkl_core.so.的一种解决方法的更多相关文章

  1. Intel MKL FATAL ERROR: Cannot load mkl_intel_thread.dll

    Intel MKL FATAL ERROR: Cannot load mkl_intel_thread.dll 在使用Anaconda创建一个虚拟环境出来,然后安装了scikit-learn.nump ...

  2. 遇到Intel MKL FATAL ERROR: Cannot load libmkl_avx2.so or libmkl_def.so问题的解决方法

    运行一个基于tensorflow的模型时,遇到Intel MKL FATAL ERROR: Cannot load libmkl_avx2.so or libmkl_def.so问题. 解决方法:打开 ...

  3. 【MySQL】MySQL同步报错-> Last_IO_Error: Got fatal error 1236 from master when reading data from binary log

    这个报错网上搜索了一下,大部分是由于MySQL意外关闭或强制重启造成的binlog文件事务点读取异常造成的主从同步报错 Last_IO_Error: Got fatal error 1236 from ...

  4. vs2010编译错误(报错:LINK : fatal error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏)

    报错:LINK : fatal error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏 1> 这段时间忙于看文献,没用过VS了. 今天用着用着就报错了: LINK : fat ...

  5. Ubuntu下 fatal error: Python.h: No such file or directory 解决方法

    参考: fatal error: Python.h: No such file or directory Ubuntu下 fatal error: Python.h: No such file or ...

  6. “fatal error: hdf5.h: 没有那个文件或目录”解决方法

    問題一: Installing Caffe without CUDA: fatal error: cublas_v2.h No such file: 在Makefile.config中修改,將CPU_ ...

  7. 报错:LINK : fatal error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏 1>

    这段时间忙于看文献,没用过VS了. 今天用着用着就报错了: LINK : fatal error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏 1> 问度娘,大神给出了解决方法 ...

  8. C++笔记002:VS2010报错:LINK fatal error LNK1123 转换到 COFF 期间失败文件无效或损坏

    原创笔记,转载请注明出处! 点击[关注],关注也是一种美德~ 错误描述: 1>------ 已启动生成: 项目: FirstCode, 配置: Debug Win32 ------ 1>生 ...

  9. 远程连接Linux mysql报错:Access denied for user ‘root’@‘localhost’(using password: YES)的解决方法

    在新安装好的Centos7上刚安装好mysql,准备进去看看,但是登陆的时候,发现报错啦: ERROR 1045 (28000): Access denied for user 'root'@'loc ...

  10. dubbo-admin-2.5.3 运行报错: Bean property 'URIType' is not writable or has an invalid 解决方法

    因为 jdk 是1.8的版本,和 dubbo-admin 存在兼容性问题.所以报错: Bean property 'URIType' is not writable or has an invalid ...

随机推荐

  1. 自研ORM (匠心之作)

    Fast Framework 作者 Mr-zhong 代码改变世界.... 一.前言 Fast Framework 基于NET6.0 封装的轻量级 ORM 框架 支持多种数据库 SqlServer O ...

  2. Java在算法竞赛中的一些技巧

    转载请注明出处(- ̄▽ ̄)-   谈到算法竞赛中使用Java,那么有一个绕不开的点就是如何快速地输入输出.通常来说,Scanner类固然可以帮助我们顺利地完成各种输入要求,而syso(System.o ...

  3. LLaMA模型指令微调 字节跳动多模态视频大模型 Valley 论文详解

    Valley: Video Assistant with Large Language model Enhanced abilitY 大家好,我是卷了又没卷,薛定谔的卷的AI算法工程师「陈城南」~ 担 ...

  4. 博客代码托管网站个人体会及感受(GitHub、Coding、Netlity、阿里云弹性web托管)

    GitHub 免费 部署 github上,服务器在国外,访问速度一般,稳定性比较好,网站知名,操作方便,部署简单,域名不需要备案. Coding 免费 coding 支持 PHP + mysql 的动 ...

  5. switch写法详解

    我们在开发项目中经常遇到对数据的判断进行相应的逻辑(if..else  ,三元运算等),Switch 语句用来选择多个需要执行的代码块 ,一定程度上简化了if....else 1. 语法 switch ...

  6. test.sh

    #!/bin/bash echo "=== show OS version ===" cat /etc/os-release echo "=== show IP addr ...

  7. Notepad正则表达式用法

    https://blog.csdn.net/cuckoo1/article/details/52165449

  8. 使用TypeScript类型注解,编写更干净的JS代码

    TypeScript 可以看作是 JavaScript 的超集,不仅包含了 JavaScript 的所有内容,还拓展了语法.规定了类型约束,使得我们可以编写更干净.完整的代码. 类型注解 TypeSc ...

  9. Hugging Face 的文本生成和大语言模型的开源生态

    [更新于 2023 年 7 月 23 日: 添加 Llama 2.] 文本生成和对话技术已经出现多年了.早期的挑战在于通过设置参数和分辨偏差,同时控制好文本忠实性和多样性.更忠实的输出一般更缺少创造性 ...

  10. Jmeter:"An error occurred: Can't connect to X11 window server using 'lacalhost:12.0' as the value of the display variable." 解决办法

    做各种不同项目的性能测试,都需要在项目本地压测服务器配置jmeter,需要时还要调出jmeter图形化界面来调试jmeter脚本. 标题中的问题遇过多次,这次做个记录. 1. 启动jmeter报错 在 ...