首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么我的curve_fit达到maxfev = 10000?

问为什么我的curve_fit达到maxfev = 10000?
EN

Stack Overflow用户
提问于 2019-12-04 16:39:20
回答 1查看 198关注 0票数 0

我正在试着做合适的,但即使在增加到10000之后,我也是每个最大值!我想我做错了什么。

我将循环通过4个相同大小的图像堆栈(30X240X240),并在4个不同的图像上获得相同体素的值。作为参考,我的循环将使用n=30、d=240

代码语言:javascript
复制
v1, v2, v3, v4 = 0.000, 0.000, 0.000, 0.000

xdata = np.array([50,300,600,1000])

D_map = np.zeros((n,d,d))
K_map = np.zeros((n,d,d))

def kurtosis(x, D, K):
    return (-x * D) + (1/6 * (x **2)* (D **2) * K)

for i in range(n):
    for r in range(d):
        for c in range(d):
            v1 = b50_data[i,r,c]
            if v1 < 28:
                D_map[i,r,c] = 0
                K_map[i,r,c] = 0
            else:
                v2 = b300_data[i,r,c]
                v3 = b600_data[i,r,c]
                v4 = b1000_data[i,r,c]
                ydata = np.array([v1,v2, v3, v4])
                ydata = np.log(ydata/v1)

                popt, pcov = curve_fit(kurtosis, xdata, ydata, maxfev= 10000)
                D_map[i,r,c] = popt[0] * 1000
                K_map[i,r,c] = popt[0]
EN

回答 1

Stack Overflow用户

发布于 2019-12-04 19:24:39

好了,我达成了一个解决方案。

我使用try: except:来传递任何耗时过长的操作,并返回一个错误。

我现在的代码是

代码语言:javascript
复制
try:
  popt, pcov = curve_fit(kurtosis, xdata, ydata, maxfev= 5000)
except:
  popt = [0,0]

D_map[i,r,c] = popt[0] * 1000
K_map[i,r,c] = popt[0]
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59171944

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档