The problem is smat(x)
It return list of list of Theano variable. This isn't a Theano variable
itself. You can have Theano contact all of this correctly to make a new
corresponding Theano variable with:

## Advertising

v,w=nlin.eigh(theano.tensor.stacklists(smat(x)))
Fred
On Tue, Aug 1, 2017 at 7:37 AM Jyotiranjan Beuria <
jyotiranjan.beu...@gmail.com> wrote:
> Hi All,
>
> I am trying to calculate the derivative of a function that
> depends on eigenvalues of a matrix. I am new to Theano.
> Here is a snippet of the code.
> import numpy as np
>
> import theano
> import theano.tensor as T
> import theano.tensor.nlinalg as nlin
>
> def myFun(X,a=2):
> s=T.dmatrix('s')
> x=T.dvector('x')
> a=T.dscalar('a')
> def smat(x):
> return [[x[0]**2,x[1],x[2]],
> [x[1]**2,a*x[1],a*X[0]],
> [x[2]**2,x[0],a*x[1]]]
> v,w=nlin.eigh(smat(x))
> TG=T.grad(v,x)
> Eigen,Grad = theano.function([x], [v,TG],allow_input_downcast=True )
>
> ev=Eigen(X)
> der=Grad(X)
> print ev,der
>
> myFun([2,3,5])
>
> Can anyone help me to solve this problem?
>
> Regards,
> Jyotiranjan
>
> --
>
> ---
> 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.
>
--
---
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.