2015-06-07 40 views
1

對角線上的特徵值創建方陣我想在對角線上創建的特徵值方陣:在theano

eigen_values, eigen_vectors = theano.tensor.nlinalg.eig(covariance_matrix) 
D = T.nlinalg.AllocDiag(eigen_values) 

但是顯然theano不把我作爲一個標準的矩陣創建d矩陣,因此我不能在後續的計算中使用它。

theano.tensor.var.AsTensorError: ('Cannot convert <theano.tensor.nlinalg.AllocDiag object at 0x7face5708450> to TensorType', <class 'theano.tensor.nlinalg.AllocDiag'>) 

回答

3

您正在使用操作類,就像它是一個操作函數一樣。取而代之的

D = T.nlinalg.AllocDiag(eigen_values) 

嘗試

D = T.nlinalg.AllocDiag()(eigen_values) 

D = T.nlinalg.alloc_diag(eigen_values)