0

Win 10 x64, conda, theano 0.9, python 3.6.1, spyder 3.1.4, IPython 6.0.0 When I test the code in scan api tutorial Iterating over the first dimension of a tensor: Calculating a polynomial , i.e.

import theano
import numpy as np
import theano.tensor as T
from theano import In

coefficients = theano.tensor.vector("coefficients")
x = T.scalar("x")

max_coefficients_supported = 10000

# Generate the components of the polynomial
components, updates = theano.scan(fn=lambda coefficient, power, free_variable: coefficient * (free_variable ** power),
                                  outputs_info=None,
                                  sequences=[coefficients, theano.tensor.arange(max_coefficients_supported)],
                                  non_sequences=x)
# Sum them up
polynomial = components.sum()

# Compile a function
calculate_polynomial = theano.function(inputs=[coefficients, x], outputs=polynomial)

spyder throw the error :

ERROR (theano.gof.opt): Optimization failure due to: local_subtensor_merge
ERROR (theano.gof.opt): node: Subtensor{:int64:}(coefficients[0:], ScalarFromTensor.0)
ERROR (theano.gof.opt): TRACEBACK:
ERROR (theano.gof.opt): Traceback (most recent call last):
  File "C:\Users\sejab\Miniconda3\lib\site-packages\theano\gof\op.py", line 625, in __call__
    storage_map[ins] = [self._get_test_value(ins)]
  File "C:\Users\sejab\Miniconda3\lib\site-packages\theano\gof\op.py", line 581, in _get_test_value
    raise AttributeError('%s has no test value %s' % (v, detailed_err_msg))
AttributeError: Elemwise{switch,no_inplace}.0 has no test value 

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "C:\Users\sejab\Miniconda3\lib\site-packages\theano\gof\opt.py", line 1982, in process_node
    replacements = lopt.transform(node)
  File "C:\Users\sejab\Miniconda3\lib\site-packages\theano\tensor\opt.py", line 3051, in local_subtensor_merge
    out = subtens(x, *sl_ins)
  File "C:\Users\sejab\Miniconda3\lib\site-packages\theano\gof\op.py", line 615, in __call__
    node = self.make_node(*inputs, **kwargs)
  File "C:\Users\sejab\Miniconda3\lib\site-packages\theano\tensor\subtensor.py", line 474, in make_node
    inputs = tuple(self.my_as_scalar(a) for a in inputs)
  File "C:\Users\sejab\Miniconda3\lib\site-packages\theano\tensor\subtensor.py", line 474, in <genexpr>
    inputs = tuple(self.my_as_scalar(a) for a in inputs)
  File "C:\Users\sejab\Miniconda3\lib\site-packages\theano\tensor\subtensor.py", line 459, in my_as_scalar
    return theano.tensor.scalar_from_tensor(a)
  File "C:\Users\sejab\Miniconda3\lib\site-packages\theano\gof\op.py", line 639, in __call__
    (i, ins, node, detailed_err_msg))
ValueError: Cannot compute test value: input 0 (Elemwise{switch,no_inplace}.0) of Op ScalarFromTensor(Elemwise{switch,no_inplace}.0) missing default value. 

ERROR (theano.gof.opt): Optimization failure due to: local_subtensor_merge
ERROR (theano.gof.opt): node: Subtensor{:int64:}(Subtensor{int64::}.0, ScalarFromTensor.0)
ERROR (theano.gof.opt): TRACEBACK:
ERROR (theano.gof.opt): Traceback (most recent call last):
  File "C:\Users\sejab\Miniconda3\lib\site-packages\theano\gof\op.py", line 625, in __call__
    storage_map[ins] = [self._get_test_value(ins)]
  File "C:\Users\sejab\Miniconda3\lib\site-packages\theano\gof\op.py", line 581, in _get_test_value
    raise AttributeError('%s has no test value %s' % (v, detailed_err_msg))
AttributeError: Elemwise{minimum,no_inplace}.0 has no test value  
Backtrace when that variable is created:

  File "C:\Users\sejab\Miniconda3\lib\site-packages\ipykernel\zmqshell.py", line 533, in run_cell
    return super(ZMQInteractiveShell, self).run_cell(*args, **kwargs)
  File "C:\Users\sejab\Miniconda3\lib\site-packages\IPython\core\interactiveshell.py", line 2683, in run_cell
    interactivity=interactivity, compiler=compiler, result=result)
  File "C:\Users\sejab\Miniconda3\lib\site-packages\IPython\core\interactiveshell.py", line 2793, in run_ast_nodes
    if self.run_code(code, result):
  File "C:\Users\sejab\Miniconda3\lib\site-packages\IPython\core\interactiveshell.py", line 2847, in run_code
    exec(code_obj, self.user_global_ns, self.user_ns)
  File "<ipython-input-1-a340056dd686>", line 1, in <module>
    runfile('D:/WorkSpace/Python/Bayes/temp_temp.py', wdir='D:/WorkSpace/Python/Bayes')
  File "C:\Users\sejab\Miniconda3\lib\site-packages\spyder\utils\site\sitecustomize.py", line 880, in runfile
    execfile(filename, namespace)
  File "C:\Users\sejab\Miniconda3\lib\site-packages\spyder\utils\site\sitecustomize.py", line 102, in execfile
    exec(compile(f.read(), filename, 'exec'), namespace)
  File "D:/WorkSpace/Python/Bayes/temp_temp.py", line 25, in <module>
    non_sequences=x)


During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "C:\Users\sejab\Miniconda3\lib\site-packages\theano\gof\opt.py", line 1982, in process_node
    replacements = lopt.transform(node)
  File "C:\Users\sejab\Miniconda3\lib\site-packages\theano\tensor\opt.py", line 3033, in local_subtensor_merge
    ushape[pos_2]))
  File "C:\Users\sejab\Miniconda3\lib\site-packages\theano\tensor\opt.py", line 2880, in merge_two_slices
    sl2, reverse2 = get_canonical_form_slice(slice2, len2)
  File "C:\Users\sejab\Miniconda3\lib\site-packages\theano\tensor\subtensor.py", line 155, in get_canonical_form_slice
    stop_plus_len = stop + length
  File "C:\Users\sejab\Miniconda3\lib\site-packages\theano\tensor\var.py", line 128, in __add__
    return theano.tensor.basic.add(self, other)
  File "C:\Users\sejab\Miniconda3\lib\site-packages\theano\gof\op.py", line 639, in __call__
    (i, ins, node, detailed_err_msg))
ValueError: Cannot compute test value: input 0 (Elemwise{minimum,no_inplace}.0) of Op Elemwise{add,no_inplace}(Elemwise{minimum,no_inplace}.0, TensorConstant{10000}) missing default value.  
Backtrace when that variable is created:

  File "C:\Users\sejab\Miniconda3\lib\site-packages\ipykernel\zmqshell.py", line 533, in run_cell
    return super(ZMQInteractiveShell, self).run_cell(*args, **kwargs)
  File "C:\Users\sejab\Miniconda3\lib\site-packages\IPython\core\interactiveshell.py", line 2683, in run_cell
    interactivity=interactivity, compiler=compiler, result=result)
  File "C:\Users\sejab\Miniconda3\lib\site-packages\IPython\core\interactiveshell.py", line 2793, in run_ast_nodes
    if self.run_code(code, result):
  File "C:\Users\sejab\Miniconda3\lib\site-packages\IPython\core\interactiveshell.py", line 2847, in run_code
    exec(code_obj, self.user_global_ns, self.user_ns)
  File "<ipython-input-1-a340056dd686>", line 1, in <module>
    runfile('D:/WorkSpace/Python/Bayes/temp_temp.py', wdir='D:/WorkSpace/Python/Bayes')
  File "C:\Users\sejab\Miniconda3\lib\site-packages\spyder\utils\site\sitecustomize.py", line 880, in runfile
    execfile(filename, namespace)
  File "C:\Users\sejab\Miniconda3\lib\site-packages\spyder\utils\site\sitecustomize.py", line 102, in execfile
    exec(compile(f.read(), filename, 'exec'), namespace)
  File "D:/WorkSpace/Python/Bayes/temp_temp.py", line 25, in <module>
    non_sequences=x)


ERROR (theano.gof.opt): Optimization failure due to: local_shape_to_shape_i
ERROR (theano.gof.opt): node: Shape(coefficients[0:])
ERROR (theano.gof.opt): TRACEBACK:
ERROR (theano.gof.opt): Traceback (most recent call last):
  File "C:\Users\sejab\Miniconda3\lib\site-packages\theano\gof\op.py", line 625, in __call__
    storage_map[ins] = [self._get_test_value(ins)]
  File "C:\Users\sejab\Miniconda3\lib\site-packages\theano\gof\op.py", line 581, in _get_test_value
    raise AttributeError('%s has no test value %s' % (v, detailed_err_msg))
AttributeError: Elemwise{sub,no_inplace}.0 has no test value 

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "C:\Users\sejab\Miniconda3\lib\site-packages\theano\gof\opt.py", line 1982, in process_node
    replacements = lopt.transform(node)
  File "C:\Users\sejab\Miniconda3\lib\site-packages\theano\tensor\opt.py", line 1884, in local_shape_to_shape_i
    ret = shape_feature.make_vector_shape(node.inputs[0])
  File "C:\Users\sejab\Miniconda3\lib\site-packages\theano\tensor\opt.py", line 1275, in make_vector_shape
    return make_vector(*self.shape_of[r])
  File "C:\Users\sejab\Miniconda3\lib\site-packages\theano\gof\op.py", line 639, in __call__
    (i, ins, node, detailed_err_msg))
ValueError: Cannot compute test value: input 0 (Elemwise{sub,no_inplace}.0) of Op MakeVector{dtype='int64'}(Elemwise{sub,no_inplace}.0) missing default value. 

ERROR (theano.gof.opt): Optimization failure due to: local_shape_to_shape_i
ERROR (theano.gof.opt): node: Shape(coefficients)
ERROR (theano.gof.opt): TRACEBACK:
ERROR (theano.gof.opt): Traceback (most recent call last):
  File "C:\Users\sejab\Miniconda3\lib\site-packages\theano\gof\op.py", line 625, in __call__
    storage_map[ins] = [self._get_test_value(ins)]
  File "C:\Users\sejab\Miniconda3\lib\site-packages\theano\gof\op.py", line 581, in _get_test_value
    raise AttributeError('%s has no test value %s' % (v, detailed_err_msg))
AttributeError: Shape_i{0}.0 has no test value 

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "C:\Users\sejab\Miniconda3\lib\site-packages\theano\gof\opt.py", line 1982, in process_node
    replacements = lopt.transform(node)
  File "C:\Users\sejab\Miniconda3\lib\site-packages\theano\tensor\opt.py", line 1884, in local_shape_to_shape_i
    ret = shape_feature.make_vector_shape(node.inputs[0])
  File "C:\Users\sejab\Miniconda3\lib\site-packages\theano\tensor\opt.py", line 1275, in make_vector_shape
    return make_vector(*self.shape_of[r])
  File "C:\Users\sejab\Miniconda3\lib\site-packages\theano\gof\op.py", line 639, in __call__
    (i, ins, node, detailed_err_msg))
ValueError: Cannot compute test value: input 0 (Shape_i{0}.0) of Op MakeVector{dtype='int64'}(Shape_i{0}.0) missing default value. 

ERROR (theano.gof.opt): Optimization failure due to: local_shape_to_shape_i
ERROR (theano.gof.opt): node: Shape(coefficients)
ERROR (theano.gof.opt): TRACEBACK:
ERROR (theano.gof.opt): Traceback (most recent call last):
  File "C:\Users\sejab\Miniconda3\lib\site-packages\theano\gof\op.py", line 625, in __call__
    storage_map[ins] = [self._get_test_value(ins)]
  File "C:\Users\sejab\Miniconda3\lib\site-packages\theano\gof\op.py", line 581, in _get_test_value
    raise AttributeError('%s has no test value %s' % (v, detailed_err_msg))
AttributeError: Shape_i{0}.0 has no test value 

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "C:\Users\sejab\Miniconda3\lib\site-packages\theano\gof\opt.py", line 1982, in process_node
    replacements = lopt.transform(node)
  File "C:\Users\sejab\Miniconda3\lib\site-packages\theano\tensor\opt.py", line 1884, in local_shape_to_shape_i
    ret = shape_feature.make_vector_shape(node.inputs[0])
  File "C:\Users\sejab\Miniconda3\lib\site-packages\theano\tensor\opt.py", line 1275, in make_vector_shape
    return make_vector(*self.shape_of[r])
  File "C:\Users\sejab\Miniconda3\lib\site-packages\theano\gof\op.py", line 639, in __call__
    (i, ins, node, detailed_err_msg))
ValueError: Cannot compute test value: input 0 (Shape_i{0}.0) of Op MakeVector{dtype='int64'}(Shape_i{0}.0) missing default value. 

ERROR (theano.gof.opt): SeqOptimizer apply <theano.tensor.opt.FusionOptimizer object at 0x000002E6B6947860>
ERROR (theano.gof.opt): Traceback:
ERROR (theano.gof.opt): Traceback (most recent call last):
  File "C:\Users\sejab\Miniconda3\lib\site-packages\theano\gof\op.py", line 625, in __call__
    storage_map[ins] = [self._get_test_value(ins)]
  File "C:\Users\sejab\Miniconda3\lib\site-packages\theano\gof\op.py", line 581, in _get_test_value
    raise AttributeError('%s has no test value %s' % (v, detailed_err_msg))
AttributeError: <float64> has no test value 

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "C:\Users\sejab\Miniconda3\lib\site-packages\theano\gof\opt.py", line 235, in apply
    sub_prof = optimizer.optimize(fgraph)
  File "C:\Users\sejab\Miniconda3\lib\site-packages\theano\gof\opt.py", line 87, in optimize
    ret = self.apply(fgraph, *args, **kwargs)
  File "C:\Users\sejab\Miniconda3\lib\site-packages\theano\tensor\opt.py", line 7289, in apply
    new_outputs = self.optimizer(node)
  File "C:\Users\sejab\Miniconda3\lib\site-packages\theano\tensor\opt.py", line 7133, in local_fuse
    return_list=True)
  File "C:\Users\sejab\Miniconda3\lib\site-packages\theano\gof\op.py", line 639, in __call__
    (i, ins, node, detailed_err_msg))
ValueError: Cannot compute test value: input 0 (<float64>) of Op pow(<float64>, <int64>) missing default value. 

ERROR (theano.gof.opt): SeqOptimizer apply <theano.compile.mode.AddDestroyHandler object at 0x000002E6B539FA20>
ERROR (theano.gof.opt): Traceback:
ERROR (theano.gof.opt): Traceback (most recent call last):
  File "C:\Users\sejab\Miniconda3\lib\site-packages\theano\gof\op.py", line 625, in __call__
    storage_map[ins] = [self._get_test_value(ins)]
  File "C:\Users\sejab\Miniconda3\lib\site-packages\theano\gof\op.py", line 581, in _get_test_value
    raise AttributeError('%s has no test value %s' % (v, detailed_err_msg))
AttributeError: Sum{acc_dtype=float64}.0 has no test value  
Backtrace when that variable is created:

  File "C:\Users\sejab\Miniconda3\lib\site-packages\ipykernel\zmqshell.py", line 533, in run_cell
    return super(ZMQInteractiveShell, self).run_cell(*args, **kwargs)
  File "C:\Users\sejab\Miniconda3\lib\site-packages\IPython\core\interactiveshell.py", line 2683, in run_cell
    interactivity=interactivity, compiler=compiler, result=result)
  File "C:\Users\sejab\Miniconda3\lib\site-packages\IPython\core\interactiveshell.py", line 2793, in run_ast_nodes
    if self.run_code(code, result):
  File "C:\Users\sejab\Miniconda3\lib\site-packages\IPython\core\interactiveshell.py", line 2847, in run_code
    exec(code_obj, self.user_global_ns, self.user_ns)
  File "<ipython-input-1-a340056dd686>", line 1, in <module>
    runfile('D:/WorkSpace/Python/Bayes/temp_temp.py', wdir='D:/WorkSpace/Python/Bayes')
  File "C:\Users\sejab\Miniconda3\lib\site-packages\spyder\utils\site\sitecustomize.py", line 880, in runfile
    execfile(filename, namespace)
  File "C:\Users\sejab\Miniconda3\lib\site-packages\spyder\utils\site\sitecustomize.py", line 102, in execfile
    exec(compile(f.read(), filename, 'exec'), namespace)
  File "D:/WorkSpace/Python/Bayes/temp_temp.py", line 27, in <module>
    polynomial = components.sum()


During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "C:\Users\sejab\Miniconda3\lib\site-packages\theano\gof\opt.py", line 235, in apply
    sub_prof = optimizer.optimize(fgraph)
  File "C:\Users\sejab\Miniconda3\lib\site-packages\theano\gof\opt.py", line 87, in optimize
    ret = self.apply(fgraph, *args, **kwargs)
  File "C:\Users\sejab\Miniconda3\lib\site-packages\theano\compile\mode.py", line 103, in apply
    fgraph.replace_validate(o, _output_guard(o),
  File "C:\Users\sejab\Miniconda3\lib\site-packages\theano\gof\op.py", line 639, in __call__
    (i, ins, node, detailed_err_msg))
ValueError: Cannot compute test value: input 0 (Sum{acc_dtype=float64}.0) of Op OutputGuard(Sum{acc_dtype=float64}.0) missing default value.  
Backtrace when that variable is created:

  File "C:\Users\sejab\Miniconda3\lib\site-packages\ipykernel\zmqshell.py", line 533, in run_cell
    return super(ZMQInteractiveShell, self).run_cell(*args, **kwargs)
  File "C:\Users\sejab\Miniconda3\lib\site-packages\IPython\core\interactiveshell.py", line 2683, in run_cell
    interactivity=interactivity, compiler=compiler, result=result)
  File "C:\Users\sejab\Miniconda3\lib\site-packages\IPython\core\interactiveshell.py", line 2793, in run_ast_nodes
    if self.run_code(code, result):
  File "C:\Users\sejab\Miniconda3\lib\site-packages\IPython\core\interactiveshell.py", line 2847, in run_code
    exec(code_obj, self.user_global_ns, self.user_ns)
  File "<ipython-input-1-a340056dd686>", line 1, in <module>
    runfile('D:/WorkSpace/Python/Bayes/temp_temp.py', wdir='D:/WorkSpace/Python/Bayes')
  File "C:\Users\sejab\Miniconda3\lib\site-packages\spyder\utils\site\sitecustomize.py", line 880, in runfile
    execfile(filename, namespace)
  File "C:\Users\sejab\Miniconda3\lib\site-packages\spyder\utils\site\sitecustomize.py", line 102, in execfile
    exec(compile(f.read(), filename, 'exec'), namespace)
  File "D:/WorkSpace/Python/Bayes/temp_temp.py", line 27, in <module>
    polynomial = components.sum()

Because other code runs well, it seems theano.function induced the problem. Although I tried use In() to add test value to coefficients and x, the problem also stand there.

sejabs
  • 43
  • 5

1 Answers1

0

Ok, I have found a similar question on the official site Creating a step-function: Optimization failure due to: local_subtensor_merge. It may be caused by Pymc3 default settings. There they gave several ways. I use test values as noted in the last comment and set

theano.config.compute_test_value = "warn"

the errors are removed.

sejabs
  • 43
  • 5