Python3.5代码相同,在两台机器上有不同的输出

2024-09-30 22:20:43 发布

您现在位置:Python中文网/ 问答频道 /正文

我编写了一个使用SARIMAX的python程序

import warnings
from statsmodels.tools.sm_exceptions import ConvergenceWarning
...
    with warnings.catch_warnings():
        warnings.simplefilter('ignore', ConvergenceWarning)
        model = SARIMAX(history, order=order, seasonal_order=sorder, trend=trend,
                            enforce_stationarity=False, enforce_invertibility=False)
        model_fit = model.fit(disp=False)
        yhat = model_fit.predict(len(history), len(history))

在一个debian上运行时(我们称之为debsrv1): 程序运行正常,没有警告(当然,我将它们定义为忽略) 在第二个debian上运行时(我们称之为debsrv2): 程序运行正常,但仍显示警告

/usr/local/lib/python3.5/dist-packages/statsmodels/base/model.py:568: ConvergenceWarning: Maximum Likelihood optimization failed to converge. Check mle_retvals "Check mle_retvals", ConvergenceWarning)

使用pip3,我检查了两台机器上是否都有statsmodels(0.11.1) Python3——版本在两个节点上都返回:python 3.5.3 内核版本包括:

    debsrv1: Linux 4.9.0-12
    debsrv2: Linux 4.9.0-11

但是我不认为内核在这个层次上有什么不同,是吗

  1. 当我在MacOS(statsmodels=0.11.1,Python3.7.7)上本地运行代码时,就像debsrv1一样
  2. 包含要由SARIMAX分析的数据的数据库似乎没有什么区别

知道我应该检查什么吗? 这种差异快让我发疯了。。。 提前感谢;)


Tags: importfalsemodellenorderdebianhistorytrend