【问题标题】:Tutorial for installing numpy with OpenBLAS on Windows在 Windows 上使用 OpenBLAS 安装 numpy 的教程
【发布时间】:2018-01-25 02:32:47
【问题描述】:

拜托,我这里确实需要一盏灯。我想使用一个好的 BLAS/LAPACK 库在 Windows 上安装 numpy,但绝对没有页面能很好地解释这个过程。看来 OpenBLAS 是一个不错且快速的选择。

目标是将“theano”与“keras”一起使用,而“theano”要求库是“动态的”,而不是静态的。 (不知道我明白这意味着什么,但它会导致缓慢和memory issues

请把我当作一个完全的新手。给我一个分步教程,告诉我怎么做!不要忘记告诉我文件应该去哪里!哪些文件夹应该放在 PATH 中!我应该调用哪些命令,它们的输出是什么,在哪里?我如何处理他们的结果或编译文件? numpy 如何找到它们?等等。我看到的所有网站似乎都认为我是 linux 专家并且已经知道一切。

我尝试过的:

  • here 下载了numpy+mkl 的编译版本——这确实安装了numpy,它变得可用,但是theano 存在内存泄漏问题,除了工作缓慢。是在.theanorc 文件中设置正确的ldflags 的问题吗?如果是这样,哪些是标志? - 关于 MKL 库,this answer may be useful?

  • 尝试安装 Anaconda - 它也不起作用,而且我不知道出了什么问题。它给了我消息,建议安装一些额外的东西,它工作但非常慢。 比我上面提到的错误的 numpy 版本慢 10 倍以上(因此,不可接受,不可能以这种速度工作)。如果我必须更改有关 Anaconda 的所有内容,最好使用常规 python 并知道发生了什么。

  • 找到这些已编译的 BLAS/LAPACK libraries(.dll 和 .lib)文件。但是.... 我应该对他们做什么? -- 只需将他们的文件夹添加到 PATH var 并安装 numpy 给我“numpy-atlas”,而不是我下载的库。 如何让 numpy 看到它们?

  • 试图理解this page,但是,它似乎会将我完全引导到上一个案例,我将如何处理结果?他们建议我使用的库在哪里?建议的quickbuild 脚本是什么,它们在哪里?

  • 找到 Cygwin 选项 here。我还没有尝试过,但听起来它应该比重新安装所有来自 Cygwin 的所有 python 和包更容易

【问题讨论】:

标签: windows numpy theano lapack openblas


【解决方案1】:

2021 年:这适用于 Windows 10 上的 miniconda

conda create -n openblas python=3.8
conda activate openblas
conda install conda-forge::blas=*=openblas
conda install -c conda-forge numpy

也使用matplotlib-base 进行了测试。

【讨论】:

  • 你知道改进是否还在吗?
  • 太好了,谢谢,这似乎真的有效!另见stackoverflow.com/q/9000164stackoverflow.com/q/37184618
  • 嗯...这会下载 OpenBLAS 库,但 numpy 仍然链接到正常的 'blas'、'cblas'、'lapack'、'blas'、'cblas'、'lapack'、' blas'、'cblas'、'lapack' 库而不是 OpenBLAS。我确实使用了 Anaconda,但它不应该真的有所作为。虽然没有 MKL 库。我不在乎,除非 Pythran 显然需要 OpenBLAS。
【解决方案2】:

按照http://scipy.github.io/devdocs/building/windows.html 中的构建说明进行了多次尝试,但均未成功。

[我的解决方案]

在广泛阅读日志和相关论坛之后,想出了一个已经在两台 Windows 机器上为我工作的方法。发布了一个批处理文件,其中包含我在https://github.com/jhvital/build-scipy-openblas 中使用的步骤。

show_config 方法显示了与 openblas 库的链接,这通过将脚本的运行时间与使用 conda install scipy 安装的 scipy 进行比较来确认,后者安装了 mkl 包。

我仍然不能完全确定这些库是否正确链接。反馈将不胜感激。

【讨论】:

  • 感谢您发布脚本。我已经尝试按照您的脚本在 Windows 上安装不带 mkl 的 numpy+scipy,但它仍然尝试在到达此行时安装 mklconda install -y blas numpy nose openblas。我尝试手动指定conda install numpy=1.16.2=py37_blas_openblash442142e_0,但当我执行np.show_config() 时似乎找不到openblas。你是怎么安装的?
  • 同意@stevew。这不起作用,即使您安装了 nomkl 元包,也想安装 mkl。
  • @stevew,@beginner_,我认为 conda 现在默认安装 mkl,当时我编写了它与 openblas 一起安装的脚本。您是否尝试将标志 blas=*=openblas 添加到该命令行的末尾?
【解决方案3】:

SciPy 的构建指令经过多次测试,似乎可以正常工作。

你可以在这里找到说明http://scipy.github.io/devdocs/building/windows.html

请注意,这仍然是一个非常微妙的过程,需要非常小心地完成。由于 Windows 是 Windows,它仍然不能保证成功。但是,如果您在https://github.com/scipy/scipy.org/issues 遇到任何问题,请花时间报告任何问题(请注意,这不是scipy 存储库,而是scipy.org 存储库)

【讨论】:

    【解决方案4】:

    我不确定您在尝试使用 anaconda 获取 openblas 和 numpy 时收到的错误是什么。

    对于使用 anaconda3 python 3.6v 的 windows 上的 openblas,此方法有效:

    conda install -c menpo openblas

    参考:https://anaconda.org/menpo/openblas

    对于 numpy: 它是:conda install numpy。如果您正在寻找特定版本的 numpy,请使用:conda install numpy=version_number

    【讨论】:

    • 这有效,但仅适用于 numpy。如果您还需要 scipy 或 scikit-learn,则不起作用。 conda 将要再次安装 mkl,因为据我所知,在 anaconda 上构建的 scipy 仅适用于 mkl。唯一的“解决方案”是只使用 pip,假设在那里找到所有需要的 windows 依赖项(不太可能)
    猜你喜欢
    • 2015-05-15
    • 2017-08-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-09
    • 1970-01-01
    • 1970-01-01
    • 2015-07-14
    相关资源
    最近更新 更多