我有两个大的numpy矩阵X
和r
(约5500x3500)。我需要计算digamma(X+r)
和digamma(r)
,我使用scipy.special.psi
进行计算。计算发生在我通过梯度下降拟合的渐变函数中。在优化期间,渐变函数将被调用很多次,因此它必须快速运行。现在,到实际问题:
digamma(r)
需要大约11秒才能运行digamma(X+r)
需要约50秒才能运行digamma(X.astype(np.float64))
,需要〜1分钟才能运行digamma(X)
,需要〜5-6分钟才能运行为什么会发生这种情况,我该怎么做才能改善运行时间?
X
包含从0到164的整数(numpy.int64
)。r
包含从0.到~4.6的浮点数(numpy.float64
)。编辑:更正X.as_float