2014-02-17 16 views
0

我一直在使用PyMC分析一些高能物理數據。它一直在努力完善,分析已經完成,我們正在撰寫論文。PyMC在採樣後更改後端

但是我有一個小問題。我使用RAM數據庫後端運行採樣器。這些痕跡現在已經在IPython內核進程的內存中呆了幾個月。問題是工作站支持人員想要執行內核升級並重啓該工作站。這會讓我失去痕跡。我想保留這些痕跡(而不是僅僅產生新的痕跡),因爲它們就是我所做的所有情節。我還想包含部分痕跡(僅限感興趣的參數)作爲出版物的補充材料。

是否有可能利用RAM後端創建的pymc.MCMC對象中的現有鏈,更改爲不同的後端,並寫出鏈中的跟蹤?

回答

1

跟蹤值存儲爲NumPy數組,因此您可以使用numpy.savetxt將每個參數的值發送到文件。 (這是文本後端在底層做了什麼。)

雖然保存當前跟蹤是一個好主意,但我建議在發佈之前花時間讓分析重複。

+0

謝謝。當然,這種分析是可重複的,在這一點上,我真的不想重新做一個過夜的運行(再次)。這些地塊已經得到了合作的批准。如果他們改變了,即使這些改變是不可見的(他們會這樣做),我將不得不再次通過審批流程。因此保存現有的痕跡是可取的。 在更一般的情況下,一些計算可能會被禁止再次運行。也許你會花費CPU時間。能夠從這樣的錯誤中拯救跑步是一件好事。 – jsw