10

一些可以完美运行的简单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

有任何想法吗 ?提前致谢

4

2 回答 2

10

我认为这与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'消除错误。

于 2015-05-14T15:49:11.160 回答
2

此处提出的解决方案比设置标志持续时间更长。在您的外壳类型中:

theano-cache purge
于 2016-08-15T02:31:58.787 回答