Tensorflow 中的随机正态矩阵
Random normal matrix in Tensorflow
我有一个均值矩阵 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
仅采用标量均值和标准差。
我知道我可以编写一个循环并对每个元素进行采样。但我认为这会很慢。
有没有更好的方法来做我想做的事?
我假设所需随机矩阵的元素是独立分布的。您尝试做的事情可以通过以下方式实现:
random_matrix = tf.random.normal([num_rows, num_cols]) * D + M
上一行中的 *
和 +
运算符被重载到 TensorFlow 的逐元素乘法和加法运算中。
这使用了这个 属性 高斯分布:如果单位高斯 (N(0, 1)
) 缩放一个因子 d
并移动一个常数 m
,则高斯变为 N(m, d)
.
我有一个均值矩阵 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
仅采用标量均值和标准差。
我知道我可以编写一个循环并对每个元素进行采样。但我认为这会很慢。
有没有更好的方法来做我想做的事?
我假设所需随机矩阵的元素是独立分布的。您尝试做的事情可以通过以下方式实现:
random_matrix = tf.random.normal([num_rows, num_cols]) * D + M
上一行中的 *
和 +
运算符被重载到 TensorFlow 的逐元素乘法和加法运算中。
这使用了这个 属性 高斯分布:如果单位高斯 (N(0, 1)
) 缩放一个因子 d
并移动一个常数 m
,则高斯变为 N(m, d)
.