创建 pm.Normal 变量时 pymc3 无法解释的 TypeError
pymc3 unexplainable TypeError when creating pm.Normal variable
以下代码摘自大量简单的 pymc3 用法示例:
import os
os.environ['MKL_THREADING_LAYER'] = 'GNU'
import pymc3 as pm
with pm.Model() as model:
alpha = pm.Normal('alpha', mu=0, sigma=1)
由于某种原因,它抛出以下异常:
Traceback (most recent call last):
File "test2.py", line 5, in <module>
alpha = pm.Normal('alpha', mu=0, sigma=1)
File "C:\Users\%USERNAME%\AppData\Local\Continuum\anaconda3\lib\site-
packages\pymc3\distributions\distribution.py", line 41, in __new__
dist = cls.dist(*args, **kwargs)
File "C:\Users\%USERNAME%\AppData\Local\Continuum\anaconda3\lib\site-
packages\pymc3\distributions\distribution.py", line 52, in dist
dist.__init__(*args, **kwargs)
File "C:\Users\%USERNAME%\AppData\Local\Continuum\anaconda3\lib\site-
packages\pymc3\distributions\continuous.py", line 404, in __init__
super(Normal, self).__init__(**kwargs)
File "C:\Users\%USERNAME%\AppData\Local\Continuum\anaconda3\lib\site-
packages\pymc3\distributions\distribution.py", line 180, in __init__
shape, dtype, defaults=defaults, *args, **kwargs)
TypeError: __init__() got an unexpected keyword argument 'sigma'
这个错误的原因是什么?
我已经尝试过 3.5 和 3.6 版本以及 pymc3。
你应该使用 sd 而不是 sigma:
import os
os.environ['MKL_THREADING_LAYER'] = 'GNU'
import pymc3 as pm
with pm.Model() as model:
alpha = pm.Normal('alpha', mu=0, sd=1)
这对我有用:
Python 3.7.0 (v3.7.0:1bf9cc5093, Jun 26 2018, 23:26:24)
[Clang 6.0 (clang-600.0.57)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import os
>>> os.environ['MKL_THREADING_LAYER'] = 'GNU'
>>> import pymc3 as pm
>>> with pm.Model() as model:
... alpha = pm.Normal('alpha', mu=0, sd=1)
...
>>>
以下代码摘自大量简单的 pymc3 用法示例:
import os
os.environ['MKL_THREADING_LAYER'] = 'GNU'
import pymc3 as pm
with pm.Model() as model:
alpha = pm.Normal('alpha', mu=0, sigma=1)
由于某种原因,它抛出以下异常:
Traceback (most recent call last):
File "test2.py", line 5, in <module>
alpha = pm.Normal('alpha', mu=0, sigma=1)
File "C:\Users\%USERNAME%\AppData\Local\Continuum\anaconda3\lib\site-
packages\pymc3\distributions\distribution.py", line 41, in __new__
dist = cls.dist(*args, **kwargs)
File "C:\Users\%USERNAME%\AppData\Local\Continuum\anaconda3\lib\site-
packages\pymc3\distributions\distribution.py", line 52, in dist
dist.__init__(*args, **kwargs)
File "C:\Users\%USERNAME%\AppData\Local\Continuum\anaconda3\lib\site-
packages\pymc3\distributions\continuous.py", line 404, in __init__
super(Normal, self).__init__(**kwargs)
File "C:\Users\%USERNAME%\AppData\Local\Continuum\anaconda3\lib\site-
packages\pymc3\distributions\distribution.py", line 180, in __init__
shape, dtype, defaults=defaults, *args, **kwargs)
TypeError: __init__() got an unexpected keyword argument 'sigma'
这个错误的原因是什么?
我已经尝试过 3.5 和 3.6 版本以及 pymc3。
你应该使用 sd 而不是 sigma:
import os
os.environ['MKL_THREADING_LAYER'] = 'GNU'
import pymc3 as pm
with pm.Model() as model:
alpha = pm.Normal('alpha', mu=0, sd=1)
这对我有用:
Python 3.7.0 (v3.7.0:1bf9cc5093, Jun 26 2018, 23:26:24)
[Clang 6.0 (clang-600.0.57)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import os
>>> os.environ['MKL_THREADING_LAYER'] = 'GNU'
>>> import pymc3 as pm
>>> with pm.Model() as model:
... alpha = pm.Normal('alpha', mu=0, sd=1)
...
>>>