gpt4 book ai didi

python - Fisher 信息计算扩展

转载 作者:行者123 更新时间:2023-11-28 17:09:26 54 4
gpt4 key购买 nike

给定数据矩阵 X.shape = (n, d) 和单个预测变量的估计值 y_pred.shape = (n,),可以计算Fisher Information 喜欢这样:

    V = diags(y_pred * (1 - y_pred)) # V.shape = (n, n), sparse from scipy.sparse.diags
I = X.T.dot(V).dot(X) # I.shape = (d, d)

现在假设我想将其扩展到 k 数据矩阵,所以 X.shape = (k, n, d),给我 k FIM I.shape = (k, d, d).遍历 k 矩阵会更有效,还是有一种线性代数方法可以加快速度?

谢谢!

最佳答案

方法 #1

对于使用 np.tensordotnp.einsum 的矢量化解决方案,我们可以分两步完成 -

parte1 = np.tensordot(X, V, axes=(1,0))
out = np.einsum('ijk,ikl->ijl',parte1, X)

对于稀疏矩阵 V,使用以下方法获取 parte1:

(X.swapaxes(1,2).reshape(-1,n)*V).reshape(k,d,n)

方法 #2

或者,在一次 einsum 调用中 -

np.einsum('ijk,jl,ilm->ikm',X, V, X)

注意:我们可以在 einsum 调用中尝试使用 optimize=True 来进一步提高较新 NumPy 版本的速度。

关于python - Fisher 信息计算扩展,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48695308/

54 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com