2017-03-10 50 views
0

我努力让PYMC3在Windows上正确安装。我已经尝试过使用Anaconda软件包,通过conda install -c conda-forge pymc3以及virtualenv只使用pip。在Windows 10上使用PYMC3 - theano无法导入名称'floatX'

似乎安装正常,但运行import pymc3时出现以下错误,但失败。研究表明,可能存在一些错过的依赖关系。

>>> import pymc3 
WARNING (theano.sandbox.cuda): The cuda backend is deprecated and will be removed in the next release (v0.10). Please switch to the gpuarray backend. You can get more information about how to switch at this URL: 
https://github.com/Theano/Theano/wiki/Converting-to-the-new-gpu-back-end%28gpuarray%29 

ERROR (theano.sandbox.cuda): nvcc compiler not found on $PATH. Check your nvcc installation and try again. 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
    File "C:\Users\peter\Anaconda3\lib\site-packages\pymc3\__init__.py", line 8, in <module> 
    from .sampling import * 
    File "C:\Users\peter\Anaconda3\lib\site-packages\pymc3\sampling.py", line 11, in <module> 
    from .step_methods import (NUTS, HamiltonianMC, Metropolis, BinaryMetropolis, 
    File "C:\Users\peter\Anaconda3\lib\site-packages\pymc3\step_methods\__init__.py", line 3, in <module> 
    from .hmc import HamiltonianMC 
    File "C:\Users\peter\Anaconda3\lib\site-packages\pymc3\step_methods\hmc\__init__.py", line 1, in <module> 
    from .hmc import HamiltonianMC 
    File "C:\Users\peter\Anaconda3\lib\site-packages\pymc3\step_methods\hmc\hmc.py", line 7, in <module> 
    from .base_hmc import BaseHMC 
    File "C:\Users\peter\Anaconda3\lib\site-packages\pymc3\step_methods\hmc\base_hmc.py", line 2, in <module> 
    from .trajectory import get_theano_hamiltonian_functions 
    File "C:\Users\peter\Anaconda3\lib\site-packages\pymc3\step_methods\hmc\trajectory.py", line 3, in <module> 
    from pymc3.theanof import join_nonshared_inputs, gradient, CallableTensor, floatX 
ImportError: cannot import name 'floatX' 

我找不到太少了这个floatx包。

似乎是一个窗口的东西 - 因为它安装并运行在我的老的Ubuntu箱(带蟒蛇)没有任何问题。

任何帮助感激地收到!

EDIT:步骤更近。出于某种原因,我有错误的nvcc编译器的路径。因此,如果您在环境路径中经受相同的检查以确保您拥有完整路径(包括“\ bin”)。如果您进行更改,请不要忘记重新启动。

现在,我得到一个错误:

>>> import pymc3 
WARNING (theano.sandbox.cuda): The cuda backend is deprecated and will be removed in the next release (v0.10). Please switch to the gpuarray backend. You can get more information about how to switch at this URL: 
https://github.com/Theano/Theano/wiki/Converting-to-the-new-gpu-back-end%28gpuarray%29 

Using gpu device 0: GeForce GTX 960M (CNMeM is disabled, cuDNN not available) 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
    File "C:\Users\peter\Anaconda3\lib\site-packages\pymc3\__init__.py", line 4, in <module> 
    from .distributions import * 
    File "C:\Users\peter\Anaconda3\lib\site-packages\pymc3\distributions\__init__.py", line 1, in <module> 
    from . import timeseries 
    File "C:\Users\peter\Anaconda3\lib\site-packages\pymc3\distributions\timeseries.py", line 1, in <module> 
    import theano.tensor as tt 
    File "C:\Users\peter\Anaconda3\lib\site-packages\theano\__init__.py", line 116, in <module> 
    theano.sandbox.cuda.tests.test_driver.test_nvidia_driver1() 
    File "C:\Users\peter\Anaconda3\lib\site-packages\theano\sandbox\cuda\tests\test_driver.py", line 32, in test_nvidia_driver1 
    profile=False) 
    File "C:\Users\peter\Anaconda3\lib\site-packages\theano\compile\function.py", line 326, in function 
    output_keys=output_keys) 
    File "C:\Users\peter\Anaconda3\lib\site-packages\theano\compile\pfunc.py", line 486, in pfunc 
    output_keys=output_keys) 
    File "C:\Users\peter\Anaconda3\lib\site-packages\theano\compile\function_module.py", line 1795, in orig_function 
    defaults) 
    File "C:\Users\peter\Anaconda3\lib\site-packages\theano\compile\function_module.py", line 1661, in create 
    input_storage=input_storage_lists, storage_map=storage_map) 
    File "C:\Users\peter\Anaconda3\lib\site-packages\theano\gof\link.py", line 699, in make_thunk 
    storage_map=storage_map)[:3] 
    File "C:\Users\peter\Anaconda3\lib\site-packages\theano\gof\vm.py", line 1098, in make_all 
    self.updated_vars, 
    File "C:\Users\peter\Anaconda3\lib\site-packages\theano\gof\vm.py", line 952, in make_vm 
    vm = CVM(
NameError: name 'CVM' is not defined 
>>> 

这是我固定在这里的最后一个帖子:https://groups.google.com/forum/#!msg/theano-users/JoTu61_MTLk/4ZzsVyaOf2kJ。但现在卡住了一个错误:

>>> import pymc3 
Traceback (most recent call last): 
    File "C:\Users\peter\Anaconda3\lib\site-packages\theano\gof\cutils.py", line 306, in <module> 
    from cutils_ext.cutils_ext import * # noqa 
ImportError: No module named 'cutils_ext.cutils_ext' 

During handling of the above exception, another exception occurred: 

Traceback (most recent call last): 
    File "C:\Users\peter\Anaconda3\lib\site-packages\theano\gof\cutils.py", line 317, in <module> 
    from cutils_ext.cutils_ext import * # noqa 
ImportError: No module named 'cutils_ext.cutils_ext' 

During handling of the above exception, another exception occurred: 

Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
    File "C:\Users\peter\Anaconda3\lib\site-packages\pymc3\__init__.py", line 4, in <module> 
    from .distributions import * 
    File "C:\Users\peter\Anaconda3\lib\site-packages\pymc3\distributions\__init__.py", line 1, in <module> 
    from . import timeseries 
    File "C:\Users\peter\Anaconda3\lib\site-packages\pymc3\distributions\timeseries.py", line 1, in <module> 
    import theano.tensor as tt 
    File "C:\Users\peter\Anaconda3\lib\site-packages\theano\__init__.py", line 80, in <module> 
    from theano.scan_module import (scan, map, reduce, foldl, foldr, clone, 
    File "C:\Users\peter\Anaconda3\lib\site-packages\theano\scan_module\__init__.py", line 41, in <module> 
    from theano.scan_module import scan_opt 
    File "C:\Users\peter\Anaconda3\lib\site-packages\theano\scan_module\scan_opt.py", line 60, in <module> 
    from theano import tensor, scalar 
    File "C:\Users\peter\Anaconda3\lib\site-packages\theano\tensor\__init__.py", line 9, in <module> 
    from theano.tensor.subtensor import * 
    File "C:\Users\peter\Anaconda3\lib\site-packages\theano\tensor\subtensor.py", line 26, in <module> 
    import theano.gof.cutils # needed to import cutils_ext 
    File "C:\Users\peter\Anaconda3\lib\site-packages\theano\gof\cutils.py", line 320, in <module> 
    compile_cutils() 
    File "C:\Users\peter\Anaconda3\lib\site-packages\theano\gof\cutils.py", line 285, in compile_cutils 
    preargs=args) 
    File "C:\Users\peter\Anaconda3\lib\site-packages\theano\gof\cmodule.py", line 2313, in compile_str 
    return dlimport(lib_filename) 
    File "C:\Users\peter\Anaconda3\lib\site-packages\theano\gof\cmodule.py", line 302, in dlimport 
    rval = __import__(module_name, {}, {}, [module_name]) 
ImportError: DLL load failed: The specified procedure could not be found. 
>>> 

调查仍在继续!也许现在是时候把窗户移到linux全时间!

编辑2:我切换到python 2.7环境,它似乎工作正常。只好安装http://mingw.org/但之后一切就OK了。

虽然能够在3.6下正常工作,但还是不错的。想到任何人?

+0

的第一个错误消息看起来有点像你可能已经安装了彼此不知何故惹两个不同版本pymc3。 floatX不是一个包,它是pymc3.theanof(约2个月大)的函数。出于某种原因,您似乎也在theano中启用了gpu后端。也许试着让cpu后端先工作。 – aseyboldt

回答

2

好吧,我设法凑齐安装在一起。

我没有依赖性管理等使用conda install -c conda-forge pymc3运气,我不能确定是否有位置/编译器路径问题等,所以我从头做了一个重新安装。

我去了Anaconda3(而不是2),它工作正常。

1)我跟着环境设置在这里https://github.com/philferriere/dlwin直到我在安装Theano点。但代替建议的版本,我安装了最新的conda install -c rdonnelly Theano,由https://github.com/nouiz建议。这是一个很好的固体环境 - 我真的推荐msys工具 - 我以前没有用过它。

philferriere指南中的测试脚本是测试功能/性能的好方法。

2)然后,我设置了pymc3使用pip install pymc3,因为他们认为这里https://github.com/pymc-devs/pymc3。但不是git上的最新版本。

希望有人认为这有用。

参考文献: https://github.com/Theano/Theano/issues/5348