jax.random.orthogonal#

jax.random.orthogonal(key, n, shape=(), dtype=<class 'float'>, m=None)[source]#

从正交群 O(n) 中均匀采样。

如果 dtype 是复数,则从酉群 U(n) 中均匀采样。

对于不相等的行和列,这会采样半正交矩阵。也就是说,如果 \(A\) 是结果矩阵,而 \(A^*\) 是它的共轭转置,那么

  • 如果 \(n \leq m\),则行是相互标准正交的: \(A A^* = I_n\)

  • 如果 \(m \leq n\),则列是相互标准正交的: \(A^* A = I_m\)

参数:
  • key (ArrayLike) – 用作随机密钥的 PRNG 密钥。

  • n (int) – 一个整数,表示行数。

  • shape (Shape) – 可选,结果的批量维度。默认为 ()。

  • dtype (DTypeLikeFloat) – 可选,返回值的浮点数 dtype(如果 jax_enable_x64 为 true,则默认为 float64,否则为 float32)。

  • m (int | None) – 一个整数,表示列数。默认为 n

返回:

形状为 (*shape, n, m) 和指定 dtype 的随机数组。

返回类型:

数组

参考文献