1

我有 3 维张量("tensor3"——一个矩阵数组),我想计算theano.sandbox.linalg.det每个矩阵的行列式( )。有没有办法在不使用的情况下计算每个行列式theano.scan?当我尝试直接调用det张量时,我得到了错误

3-dimensional array given. Array must be two-dimensional. 

但是我读到这scan很慢并且不能很好地并行化,并且如果可能的话,应该只使用张量操作。是这样吗?在这种情况下我可以避免使用扫描吗?

4

1 回答 1

0

我看到了 3 种可能性:

  • 如果您在编译 Theano 函数之前知道 tensor3 变量中矩阵的数量,则可以使用 split() 操作或仅在 tensor3 中的所有矩阵上调用 det()。
  • 如果您不知道形状,您可以制作自己的操作,它将遍历输入并调用 numpy fct. 有关如何进行操作的示例,请参见。
  • 使用扫描。在这种情况下很容易使用它。看这个例子,只需将调用从 tensordot 更改为 det()。
于 2013-11-22T16:38:10.997 回答