【发布时间】:2020-12-23 16:18:00
【问题描述】:
我有一个函数,可以根据对应于平均值的矩阵和对应于方差值的另一个矩阵,给出每个类的概率分布。例如,如果我有四个类,那么我将有以下输出:
y_means = [1,2,3,4]
y_variance = [0.01,0.02,0.03,0.04]
我需要对平均值进行以下计算才能继续我的程序的其余部分:
y_means = np.array(y_means)
y_means = np.reshape(y_means,(y_means.size,1))
A = np.random.randn(10,y_means.size)
y_means = np.matmul(A,y_means)
在这里,我使用了 numpy.random.randn 函数从标准正态分布中生成随机样本,然后将其与矩阵的平均值相乘,得到一个新的输出矩阵。输出矩阵的维度将是 (10 x 1)。
我需要做一个类似的计算,这样我的 output_variances 也将是一个 (10 x 1) 矩阵。但是以相同的方式将方差与来自标准正态分布的随机样本相乘是没有意义的,因为这也会导致负值。这是不可取的,因为我的最终目标是使用这些平均值及其相应的方差值创建正态分布:
torch.distributions.normal.Normal(loc=y_means, scale=y_variance)
所以我的问题是,是否有任何方法可以为 numpy.random.randn 生成的每个随机样本获取方差值?因为这样一个矩阵的乘法对于 output_variance 会更有意义。
或者如果有任何其他我可能不知道的策略,请告诉我。
【问题讨论】:
标签: python numpy pytorch gaussian probability-distribution