捕获 curve_fit 的 RuntimeError 及其描述
catch RuntimeError of curve_fit and its description
有时 scipy.curve_fit
会引发 RuntimeError
异常。
示例代码(明确编写以引发异常):
import numpy
from scipy.optimize import curve_fit
def model(x, A, B):
return A * x + B
data = numpy.array([[0, 1], [1, 2]])
par, cov = curve_fit(model, data[:, 0], data[:, 1], p0 = [0, 0], maxfev=1)
运行 代码引发异常
RuntimeError: Optimal parameters not found: Number of calls to function has reached maxfev = 1.
我可以用
捕获异常
import numpy
from scipy.optimize import curve_fit
def model(x, A, B):
return A * x + B
data = numpy.array([[0, 1], [1, 2]])
try:
par, cov = curve_fit(model, data[:, 0], data[:, 1], p0 = [0, 0], maxfev=1)
except RuntimeError:
print('Runtime Error!')
如何获取异常的整个描述字符串,即“未找到最佳参数:函数调用次数已达到maxfev = 1”的错误信息?
import numpy
from scipy.optimize import curve_fit
def model(x, A, B):
return A * x + B
data = numpy.array([[0, 1], [1, 2]])
try:
par, cov = curve_fit(model, data[:, 0], data[:, 1], p0 = [0, 0], maxfev=1)
except RuntimeError as e:
print('Runtime Error :', str(e))
这会将异常捕获为变量 e
并使用字符串转换来获取错误信息。
有时 scipy.curve_fit
会引发 RuntimeError
异常。
示例代码(明确编写以引发异常):
import numpy
from scipy.optimize import curve_fit
def model(x, A, B):
return A * x + B
data = numpy.array([[0, 1], [1, 2]])
par, cov = curve_fit(model, data[:, 0], data[:, 1], p0 = [0, 0], maxfev=1)
运行 代码引发异常
RuntimeError: Optimal parameters not found: Number of calls to function has reached maxfev = 1.
我可以用
捕获异常import numpy
from scipy.optimize import curve_fit
def model(x, A, B):
return A * x + B
data = numpy.array([[0, 1], [1, 2]])
try:
par, cov = curve_fit(model, data[:, 0], data[:, 1], p0 = [0, 0], maxfev=1)
except RuntimeError:
print('Runtime Error!')
如何获取异常的整个描述字符串,即“未找到最佳参数:函数调用次数已达到maxfev = 1”的错误信息?
import numpy
from scipy.optimize import curve_fit
def model(x, A, B):
return A * x + B
data = numpy.array([[0, 1], [1, 2]])
try:
par, cov = curve_fit(model, data[:, 0], data[:, 1], p0 = [0, 0], maxfev=1)
except RuntimeError as e:
print('Runtime Error :', str(e))
这会将异常捕获为变量 e
并使用字符串转换来获取错误信息。