当尝试在多个内核上运行时,如何解决PyMC3挂起问题?

2024-04-28 01:28:10 发布

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

我无法在带有Pymc3的Mac上使用多核处理。我已经阅读了PyMC3开发者论坛上的论坛,但我遇到的问题似乎主要是Windows

基本上,下面的代码只是挂起。如果我在一个核心上运行,它工作得很好

如果我将下面的代码片段包装到一个函数中,在if __name__ == '__main__'语句之后调用该函数,那么它确实可以在多核上工作

下面是我在Jupyter手机中运行的代码

    print('Running:',specialty_filter)
    with pm.Model() as logistic_model:
        pm.glm.GLM.from_formula(
            "is_noshow ~ binnednoshows + priorthvisitcount + priorthvisitcount  + priornoshowvisits  + priornoshowvisits:priorthvisitcount + priorthvisitcount:priornoshowvisits:priorthvisitcount + age + C(same_day_yn) + C(is_telehealth_visit) + C(diane_elizabeth) + C(prc_name_binned)",  #  + priornoshowvisits + priorthvisitcount age
            df_hist,
            family=pm.glm.families.Binomial(),
        )
        trace = pm.sample(
            10000,
            tune=6400,
            random_seed=951,
            max_treedepth=16,
            target_accept=0.98,
            # chains=4,
            # cores=4,
            init="adapt_diag",
        )

Tags: 函数代码nameageiswindowsmac论坛