相关疑难解决方法(0)

Numpy Pure函数用于性能,缓存

我正在写一些适度的性能关键代码.此代码将位于最内部循环中,计算的运行时间以小时为单位.快速计算表明,在计算的某些变体中,此代码将执行大约10 ^ 12次.

因此,函数是计算sigmoid(X),另一个计算它的导数(gradient).Sigmoid具有以下属性:对于
y = sigmoid(x),dy/dx = y(1-y)
在python for numpy中,这看起来像:

sigmoid = vectorize(lambda(x): 1.0/(1.0+exp(-x)))
grad_sigmoid = vectorize(lambda (x): sigmoid(x)*(1-sigmoid(x)))
Run Code Online (Sandbox Code Playgroud)

可以看出,这两个函数都是纯粹的(没有副作用),因此它们是备忘的理想候选者,至少在短期内,我有一些担心缓存每次调用sigmoid所做的:存储10 ^ 12个浮点数将需要几TB的RAM.

有没有一种优化方法?
python会不会认为这些是纯函数并为我缓存它们?
我什么都不担心?

python optimization numpy memoization blas

10
推荐指数
2
解决办法
2万
查看次数

在Scipy中曲线拟合真实数据时如何修复“RuntimeWarning:exp遇到溢出”?

我正在尝试确定用于现实世界数据的最佳模型函数和参数。我有几个数据集,它们都表现出类似的指数衰减,我想计算每个数据集的拟合函数参数。

最大的数据集在 x 轴上从 1 到大约 1,000,000 不等,在 y 轴上从 0 到大约 10,000 不等。

我是 Numpy 和 Scipy 的新手,所以我尝试将这个问题的代码适应我的数据,但没有成功: 在没有初始猜测的情况下拟合指数衰减

# -*- coding: utf-8 -*-
import numpy as np
import matplotlib.pyplot as plt
import scipy as sp
import scipy.optimize

x = np.array([   1.,    4.,    9.,   16.,   25.,   36.,   49.,   64.,   81.,  100.,  121.,
        144.,  169.,  196.,  225.,  256.,  289.,  324.,  361.,  400.,  441.,  484.,
        529.,  576.,  625.,  676.,  729.,  784.,  841.,  900.,  961., 1024., 1089.,
       1156., 1225., 1296., 1369., 1444., …
Run Code Online (Sandbox Code Playgroud)

python numpy curve-fitting scipy

7
推荐指数
1
解决办法
5121
查看次数

标签 统计

numpy ×2

python ×2

blas ×1

curve-fitting ×1

memoization ×1

optimization ×1

scipy ×1