随笔04-安装lapack的备忘

很多科学计算库都用到了lapack,所以安装下

  1. 该库是使用Fortran编写,为了升级该库,需要安装Fortran的编译环境(勾起了大学学Fortran的痛苦回忆);
  2. 本文主要纪录下:
    4.1.Fortran下的安装
    4.2.lapack安装的配置细节

1. 来源:

在调使用sklearn做机器学习的代码的时候,总是报如下警告:

/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/sklearn/linear_model/base.py:509: 
RuntimeWarning: internal gelsd driver lwork query error, required iwork dimension not returned. 
This is likely the result of LAPACK bug 0038, fixed in LAPACK 3.2.2 (released July 21, 2010).
 Falling back to 'gelss' driver.
  linalg.lstsq(X, y)

这个问题是lapack库本身bug造成,所以尝试安装下lapack库,更新下,看看能不能解决问题,事实证明,sklearn使用的是自己的动态库。

2. 下载fortran地址

下载地址:
https://gcc.gnu.org/wiki/GFortranBinaries

截图如下:
Fortran下载页面

实际上下载地址在github:
https://github.com/fxcoudert/gfortran-for-macOS/releases

3. Fortran安装

在Mac系统下载的二进制包(gfortran-6.3-Sierra.dmg),直接戳,就可以安装(可能需要安装XCode,因为需要GCC编译环境)

4. 下载lapack包

下载地址(注意选择比较新的版本):
http://www.netlib.org/lapack/
我下载后的文件名是:lapack-3.8.0.tar

5. 安装

这个部分特别mark一下:

5.1.解压

解压指令:

> tar -xvf lapack-3.8.0.tar

5.2. 配置

  1. 安装文件夹根目录下的'make.inc.example'文件更名为'make.inc'


    拷贝重命名脚本文件
  2. 修改编译库,在Makefile中添加blaslib ,增加一个编译库
    lib: lapacklib tmglib 一行中,加blaslib
    文件在安装目录下


    增加一个编译库blaslib

    注意:这个文件不是INSTALL目录下的,是解压根目录下的Makefile。

5.3. 编译make

命令行下,直接执行make即可(同时执行编译与安装),编译完成的截图如下:


编译结束的样子

附录:

简单查了一下:numpy或者scipy使用的是自己的lapack库。


numpy相关的lapack库

基本上机器学习库都是依赖numpy。

你可能感兴趣的:(随笔04-安装lapack的备忘)