Right, that's a bug (https://github.com/Theano/Theano/issues/5790).
However, for some reason `seq` seems to be defined as int64, which I doubt is what you want since you are taking a gradient wrt it, which would be 0. Moreover, the expression for the gradient does not look right. It currently returns 0 for the boundaries, which is not correct. It should be 0 for param2 (changing it by epsilon would not change the output most of the time), and the sum of the output gradients for param1, at least when step > 0, which is your case. On Mon, Mar 27, 2017, Julia K wrote: > Hi, > > I'm getting an error when trying to get the gradient of a function. > > Basically, I want to use two parameters to define the lower and upper bound > of an iterator. > For easier understanding I simplified my code: > > from theano import theano, tensor as tt > > def get_sum(param1, param2): > seq = tt.arange(param1, param2) > > components, _ = theano.scan(lambda index: index**2, > outputs_info=None, > sequences=[seq]) > return tt.sum(components) > > > param1 = tt.dscalar('param1') > param1.tag.test_value = 0.0 > > param2 = tt.dscalar('param2') > param2.tag.test_value = 10.0 > > objective = get_sum(param1, param2) > > obj_function = theano.function(inputs=[param1, param2],outputs=objective) > > obj_gradient = theano.gradient.jacobian(objective,[param1]) > gradient_function = theano.function(inputs=[param1, param2], > outputs=obj_gradient) > > --------------------------------------------------------------------------- > > ... > > TypeError: ARange{dtype='int64'}.grad illegally returned an integer-valued > variable. (Input index 0, dtype int64) > > > The function that is called in theano.scan (which is index**2 in the > example) could be any function that uses the index as one of its parameters. > > What do I need to change about the code to make it work? > > The same error occurs when using theano version 0.8.2 or > 0.9.0.dev-b3d19ce8e8d7cdf87c3f84599be81647803aa1f6 > > -- > > --- > You received this message because you are subscribed to the Google Groups > "theano-users" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to theano-users+unsubscr...@googlegroups.com. > For more options, visit https://groups.google.com/d/optout. -- Pascal -- --- You received this message because you are subscribed to the Google Groups "theano-users" group. To unsubscribe from this group and stop receiving emails from it, send an email to theano-users+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.