PyMC3 & Theano - Theano 代码在导入 pymc3 后停止工作
PyMC3 & Theano - Theano code that works stop working after pymc3 import
一些简单的 theano 代码完美运行,当我导入 pymc3 时停止运行
为了重现错误,这里有一些片段:
#Initial Theano Code (this works)
import theano.tensor as tsr
x = tsr.dscalar('x')
y = tsr.dscalar('y')
z = x + y
#Snippet 1
import pymc3 as pm
import theano.tensor as tsr
x = tsr.dscalar('x')
y = tsr.dscalar('y')
z = x + y
#Snippet 2
import theano.tensor as tsr
import pymc3 as pm
x = tsr.dscalar('x')
y = tsr.dscalar('y')
z = x + y
#Snippet 3
import pymc3 as pm
x = pm.theano.tensor.dscalar('x')
y = pm.theano.tensor.dscalar('y')
z = x + y
对于前面的每个片段,我都收到以下错误:
---------------------------------------------------------------------------
AttributeError Traceback (most recent call last)
/Users/tom/anaconda/lib/python3.4/site-packages/theano/gof/op.py in __call__(self, *inputs, **kwargs)
516 try:
--> 517 storage_map[ins] = [self._get_test_value(ins)]
518 compute_map[ins] = [True]
/Users/tom/anaconda/lib/python3.4/site-packages/theano/gof/op.py in _get_test_value(cls, v)
478
--> 479 raise AttributeError('%s has no test value' % v)
480
AttributeError: x has no test value
During handling of the above exception, another exception occurred:
ValueError Traceback (most recent call last)
<ipython-input-2-ef8582b040f8> in <module>()
3 x = pm.theano.tensor.dscalar('x')
4 y = pm.theano.tensor.dscalar('y')
----> 5 z = x + y
/Users/tom/anaconda/lib/python3.4/site-packages/theano/tensor/var.py in __add__(self, other)
126 def __add__(self, other):
127 try:
--> 128 return theano.tensor.basic.add(self, other)
129 # We should catch the minimum number of exception here.
130 # Otherwise this will convert error when Theano flags
/Users/tom/anaconda/lib/python3.4/site-packages/theano/gof/op.py in __call__(self, *inputs, **kwargs)
523 run_perform = False
524 elif config.compute_test_value == 'raise':
--> 525 raise ValueError('Cannot compute test value: input %i (%s) of Op %s missing default value' % (i, ins, node))
526 elif config.compute_test_value == 'ignore':
527 # silently skip test
ValueError: Cannot compute test value: input 0 (x) of Op Elemwise{add,no_inplace}(x, y) missing default value
有什么想法吗?
提前致谢
我认为这与 pymc3
设置有关 theano.config.compute_test_value = 'raise'
: https://github.com/pymc-devs/pymc3/blob/master/pymc3/model.py#L395
您可以明确地将 theano.config.compute_test_value
设置回 'ignore'
以消除错误。
提出的解决方案 here 比设置标志持续时间稍长。在您的 shell 中输入:
theano-cache purge
一些简单的 theano 代码完美运行,当我导入 pymc3 时停止运行
为了重现错误,这里有一些片段:
#Initial Theano Code (this works)
import theano.tensor as tsr
x = tsr.dscalar('x')
y = tsr.dscalar('y')
z = x + y
#Snippet 1
import pymc3 as pm
import theano.tensor as tsr
x = tsr.dscalar('x')
y = tsr.dscalar('y')
z = x + y
#Snippet 2
import theano.tensor as tsr
import pymc3 as pm
x = tsr.dscalar('x')
y = tsr.dscalar('y')
z = x + y
#Snippet 3
import pymc3 as pm
x = pm.theano.tensor.dscalar('x')
y = pm.theano.tensor.dscalar('y')
z = x + y
对于前面的每个片段,我都收到以下错误:
---------------------------------------------------------------------------
AttributeError Traceback (most recent call last)
/Users/tom/anaconda/lib/python3.4/site-packages/theano/gof/op.py in __call__(self, *inputs, **kwargs)
516 try:
--> 517 storage_map[ins] = [self._get_test_value(ins)]
518 compute_map[ins] = [True]
/Users/tom/anaconda/lib/python3.4/site-packages/theano/gof/op.py in _get_test_value(cls, v)
478
--> 479 raise AttributeError('%s has no test value' % v)
480
AttributeError: x has no test value
During handling of the above exception, another exception occurred:
ValueError Traceback (most recent call last)
<ipython-input-2-ef8582b040f8> in <module>()
3 x = pm.theano.tensor.dscalar('x')
4 y = pm.theano.tensor.dscalar('y')
----> 5 z = x + y
/Users/tom/anaconda/lib/python3.4/site-packages/theano/tensor/var.py in __add__(self, other)
126 def __add__(self, other):
127 try:
--> 128 return theano.tensor.basic.add(self, other)
129 # We should catch the minimum number of exception here.
130 # Otherwise this will convert error when Theano flags
/Users/tom/anaconda/lib/python3.4/site-packages/theano/gof/op.py in __call__(self, *inputs, **kwargs)
523 run_perform = False
524 elif config.compute_test_value == 'raise':
--> 525 raise ValueError('Cannot compute test value: input %i (%s) of Op %s missing default value' % (i, ins, node))
526 elif config.compute_test_value == 'ignore':
527 # silently skip test
ValueError: Cannot compute test value: input 0 (x) of Op Elemwise{add,no_inplace}(x, y) missing default value
有什么想法吗? 提前致谢
我认为这与 pymc3
设置有关 theano.config.compute_test_value = 'raise'
: https://github.com/pymc-devs/pymc3/blob/master/pymc3/model.py#L395
您可以明确地将 theano.config.compute_test_value
设置回 'ignore'
以消除错误。
提出的解决方案 here 比设置标志持续时间稍长。在您的 shell 中输入:
theano-cache purge