2017-03-10 290 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