2 个稳定版本
1.0.7 | 2022年4月1日 |
---|---|
1.0.6 | 2021年10月30日 |
1.0.2 |
|
1.0.0 |
|
0.1.1 |
|
#187 in 压缩
每月37次下载
用于 binary-ensemble
110KB
255 行
pcompress
以前,很难从 GerryChain Python 或 GerryChain Julia 存储马尔可夫链蒙特卡洛运行的每个步骤的状态。此存储库生成分区/区域划分分配的有效、可流式传输的中间二进制表示,使得生成的计划可以即时保存(和分析)。每一步表示为与前一步的差分,从而显著减少了每步的磁盘使用量。然后使用 LZMA2(通过 XZ)压缩中间表示。
使用 pcompress,您可以以通用便携式格式保存/回放 MCMC 运行,使我们的当前用例得以实现,例如
- 积极在各个状态下运行 MCMC,然后在更高的速度下回放(例如,在国会级别为 10-30 倍),以实现快速的分析周转时间
- 利用 GerryChain Julia(或 frcw.rs)的速度,同时使用丰富的 GerryChain Python 分析工具
- 使用 pcompress 的互操作性功能比较各种 MCMC 实现(Julia、Rust 和 Python)
- 保存 MCMC 运行以实现实验的简单、精确可重复性
- 等等。
pcompress
目前在 MGGG 中用于驱动我们几乎所有 MCMC/集成分析,以提供快速的分析周转时间并确保可重复性。
性能
这些数据来自在实验室会议中宣布 pcompress
的初始公告。请注意,这些指标可能略有过时——您可能会看到更好的实际性能。此外,这些指标未考虑更新器/评分开销(因为这取决于用户的代码)。
给出的上限是为了提供一个估计,说明如果进一步优化并实现分片,pcompress
的速度可以达到多快。
安装
cargo install pcompress
pip install pcompress
Python 使用(与 GerryChain 一起)
请注意,chain
是一个普通的马尔可夫链对象,而 graph
是一个普通的 GerryChain 图。
录制
from pcompress import Record
for partition in Record(chain, "pa-run.chain"):
# normal chain stuff here
回放
from pcompress import Record
for partition in Replay(graph, "pa-run.chain", updaters=my_updaters):
# normal chain stuff here
有关 GerryChain Python 的更多示例,请参阅 此处。
许可证和致谢
pcompress
由 Max Fan 编写和维护,并采用 AGPLv3 许可协议。如果您想贡献,PR 总是受欢迎的。
依赖项
~3.5MB
~64K SLoC