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 | None) – 一个整数,表示列数。默认为 n

返回:

形状为 (*shape, n, n) 且具有指定 dtype 的随机数组。

返回类型:

数组 (Array)

参考文献