我想在对角线上创建一个带有特征值的方阵:
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'>)
答案 0 :(得分:3)
您正在使用操作类,就像它是一个操作函数一样。
而不是
D = T.nlinalg.AllocDiag(eigen_values)
试
D = T.nlinalg.AllocDiag()(eigen_values)
或
D = T.nlinalg.alloc_diag(eigen_values)