gpt4 book ai didi

python - pymc3 SQLite 后端,指定要跟踪的变量列表

转载 作者:行者123 更新时间:2023-11-28 16:28:29 25 4
gpt4 key购买 nike

我正在拟合一个分层模型,其中一个变量的形状>10K,并且该模型需要 500+k 个样本才能收敛。我想使用持久性后端进行跟踪,以便以后比较不同的模型。我尝试使用 SQLite 后端,但出现以下错误:

/opt/conda/lib/python2.7/site-packages/pymc3/backends/sqlite.pyc in _create_table(self) 123 statement = template.format(table=varname, 124 value_cols=colnames) --> 125 self.db.cursor.execute(statement) 126 127 def _create_insert_queries(self, chain):

OperationalError: too many columns on individual_freq

我假设这是因为我正在尝试为我的所有变量保存轨迹,包括形状>10K 的矢量变量。我不需要/不想为向量保存轨迹——我只对顶级变量感兴趣。使用内存后端时,我可以像这样明确指定变量列表:

trace = pm.sample(1000000, step, start=start, progressbar=False,   
trace=[alpha,beta,uplift,mo_drop])

但是在使用SQLite的时候,我只能指定:

backend = SQLite('beta_poisson_monthly_drop.sqlite')
trace = pm.sample(1000000, step, progressbar=False,
trace=backend)

我想做的是这样的:

backend = SQLite('beta_poisson_monthly_drop.sqlite')
trace = pm.sample(1000000, step, progressbar=False,
trace=backend, vars=[alpha,beta,uplift,mo_drop])

这可能吗?这应该是一个功能请求吗?感谢您的任何建议。

最佳答案

SQLite init 方法中有一个 vars 参数:

backend = SQLite('beta_poisson_monthly_drop.sqlite',
vars=[alpha,beta,uplift,mo_drop])
trace = pm.sample(1000000, step, progressbar=False, trace=backend)

关于python - pymc3 SQLite 后端,指定要跟踪的变量列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34452561/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com