作为一个初学者,我尝试在我的surface pro 4/win 10 64位上安装pymc3,在网上搜索了一些信息,并遇到了一些问题。现在我想分享一下我的经验,并提出一些问题。在
首先,我选择了winpython3.5.2.3Qt5和python3.5。然而,当我运行pymc3启动示例线性回归模型enter link description here时,我遇到了崩溃错误:有时是“内核死了”,有时是“ImportError:DLL load”失败:初始化例程失败”。为了解决这个问题,我搜索了博客/文章,发现其他人推荐使用python2.7enter link description here的Python。也有人说Theano0.8.2只是支持Python3.4,而不是3.5。我想有一些兼容的问题会导致崩溃。 最后,我用Python2.7安装了64位的Anaconda4.2。在
问题1:由于《水蟒2.5 MKL》是免费和自动安装的,我根据一些博客测试了numpy和MKL之间的链接。在
(一)
numpy.__config__.show()
lapack_opt_info:
libraries = ['mkl_core_dll', 'mkl_intel_lp64_dll', 'mkl_intel_thread_dll']
library_dirs = ['C:/Users/sejab/Anaconda2\\Library\\lib']
define_macros = [('SCIPY_MKL_H', None), ('HAVE_CBLAS', None)]
include_dirs = ['C:/Users/sejab/Anaconda2\\Library\\include']
blas_opt_info:
libraries = ['mkl_core_dll', 'mkl_intel_lp64_dll', 'mkl_intel_thread_dll']
library_dirs = ['C:/Users/sejab/Anaconda2\\Library\\lib']
define_macros = [('SCIPY_MKL_H', None), ('HAVE_CBLAS', None)]
include_dirs = ['C:/Users/sejab/Anaconda2\\Library\\include']
openblas_lapack_info:
NOT AVAILABLE
lapack_mkl_info:
libraries = ['mkl_core_dll', 'mkl_intel_lp64_dll', 'mkl_intel_thread_dll']
library_dirs = ['C:/Users/sejab/Anaconda2\\Library\\lib']
define_macros = [('SCIPY_MKL_H', None), ('HAVE_CBLAS', None)]
include_dirs = ['C:/Users/sejab/Anaconda2\\Library\\include']
blas_mkl_info:
libraries = ['mkl_core_dll', 'mkl_intel_lp64_dll', 'mkl_intel_thread_dll']
library_dirs = ['C:/Users/sejab/Anaconda2\\Library\\lib']
define_macros = [('SCIPY_MKL_H', None), ('HAVE_CBLAS', None)]
include_dirs = ['C:/Users/sejab/Anaconda2\\Library\\include']
但是在anaconda文件夹中没有mkl_intel_lp64文件。这无关紧要吗?
2)id(numpy.dot) == id(numpy.core.multiarray.dot) >> True
有人说如果他们有联系,纽比应该使用numpy.core公司.\u dotblas。这是否意味着numpy dot在环境中也使用多数组而不是MKL blas?
总之,在水蟒中,numpy会自动与MKL链接吗?
第二,Theano是一个特殊的包,因为它需要c/c++和cuda编译配置。因为我的笔记本电脑没有nvidiagpu,所以我只需要关注c/c++编译环境。官方的theano安装指南和许多文章/博客建议首先使用conda install mingw libpython
然后是吉特。但是,我发现conda install theano
已经包含了mingw64(可能是TDM-gcc64?)组件和libpython。所以我只运行命令来安装theano,并认为它足够了。然后我把g++的路径放到系统路径中
(在我的环境中,是的
"C:\Users\sejab\Anaconda2\Library\mingw-w64\bin", "C:\Users\sejab\Anaconda2\Library\mingw-w64\x86_64-w64-mingw32\bin" and corresponding "include“ path).
要验证安装,请使用测试程序
^{pr2}$没关系。Result difference: 0.000000
。在
第三,我遵循官方手册安装指南和其他博客上的说明
1)下载预编译的OpenBLAS-v0.2.19-Win64-int32.zip并提取到c:\,放入其bin和include路径到系统路径中
2)创建一个。电子邮件.txt在根中
C:\Users\sejab
写进
[global]
device = cpu
floatX = float64
[blas]
ldflags = -LC:/OpenBLAS-v0.2.19-Win64-int32/bin -lopenblas
用ano配置oopenblas。再次进行上述测试
NP time: 0.431000[s], theano time: 0.307000[s] (times should be close when run on CPU!)
Result difference: 0.000000
。在
如果floatX = float32
,则{
问题2:是否有其他方法来验证ano和openblas之间的链接?当矩阵A、B的值固定不变时,测试CPU时间也会发生变化
问题3:在测试中,ANO是否自动使用多核?如果没有,如何配置?在
最后,我用conda install -c conda-forge pymc3
来安装pymc3。在pymc3官方教程中,解决相同的线性回归模型没有问题。在
它有点长,但我希望它能帮助别人。在
目前没有回答
相关问题 更多 >
编程相关推荐