为什么fbprophet模型的pickle文件在硬盘上需要这么多内存?

why does pickle file of fbprophet model need so much memory on hard drive?

我用 airpassengers data:

创建了一个简单的 fbprophet 模型

我用航空旅客数据创建了一个简单的 fbprophet 模型:

import pandas as pd
import pickle
from fbprophet import Prophet
import sys

df = pd.read_csv("airline-passengers.csv")

# preprocess columns as fbprophet expects it
df.rename(columns={"Month": "ds", "Passengers": "y"}, inplace=True)
df["ds"] = pd.to_datetime(df["ds"])

m = Prophet()
m.fit(df)

但是,当我保存对象时 m:

with open("p_model", "wb") as f:
    pickle.dump(m, f)

我的硬盘需要 >1 MB 的内存。对象 m 本身似乎很小,因为 sys.getsizeof(m) returns 56.

为什么 pickle 文件这么大?是否有合适的替代方法来保存对象供以后重用?提前致谢。

我认为它也会腌制训练数据,所以尽量不要保存 model.history 应该没问题。

这里有很好的讨论:https://github.com/facebook/prophet/issues/1159

感谢@Kohelet 的link,我找到了解决方案,就是stan_backend属性:

m.stan_backend = None

这将硬盘驱动器上的文件大小减少到大约 18 KB。

我仍然想知道为什么在调用时不可见 sys.sizeof(m)