代码之家  ›  专栏  ›  技术社区  ›  a06e

张量流中的随机正规矩阵

  •  0
  • a06e  · 技术社区  · 5 年前

    我有一个平均值矩阵 M 标准差矩阵 D ,两个尺寸相同。我想抽样一个随机正态值矩阵 A ,以便输入 A[i,j] 服从正态分布 M[i,j] 和标准差 D[i,j] .

    从文件中( https://www.tensorflow.org/api_docs/python/tf/random/normal?version=stable )我看到了 tf.random.normal 只取标量平均值和标准偏差。

    我知道我可以写一个循环并对每个元素进行采样。但我认为这会很慢。

    有更好的方法做我想做的事吗?

    1 回复  |  直到 5 年前
        1
  •  1
  •   Shanqing Cai    5 年前

    我假设期望随机矩阵的元素是独立分布的。你要做的事情可以通过以下方式实现:

    random_matrix = tf.random.normal([num_rows, num_cols]) * D + M
    

    这个 * + 上面一行中的运算符被重载为TensorFlow的元素级乘法和加法操作。

    这使用了高斯分布的这个特性:如果单位高斯( N(0, 1) )按因子缩放 d 被一个常数改变 m ,高斯变为 N(m, d) .