2014-02-17 5 views
0

Я использую PyMC для анализа некоторых данных физики высоких энергий. Он работал над совершенствованием, анализ завершен, и мы работаем над этой статьей.PyMC сменяет backend после выборки

У меня есть небольшая проблема, однако. Я запустил пробоотборник с базовым блоком базы данных RAM. Следы сидят в памяти в процессе ядра IPython уже пару месяцев. Проблема в том, что сотрудники службы поддержки рабочих станций хотят выполнить обновление ядра и перезагрузить эту рабочую станцию. Это заставит меня потерять следы. Я хотел бы сохранить эти следы (а не просто создавать новые), так как они - то, с чем я сделал все сюжеты. Я также хотел бы включить часть следов (только параметры, представляющие интерес) в качестве дополнительного материала к публикации.

Можно ли использовать существующую цепочку в объекте pymc.MCMC, созданном с использованием базового блока RAM, изменить на другой бэкэнд и выписать следы в цепочке?

ответ

1

Значения трассировки хранятся в массивах NumPy, поэтому вы можете использовать numpy.savetxt для отправки значений каждого параметра в файл. (Это то, что делает бэкэнд в тексте под капотом.)

Сохраняя ваши текущие следы, это хорошая идея, я бы предложил потратить время, чтобы сделать ваш анализ повторяемым до публикации.

+0

Спасибо. Разумеется, анализ повторяется, я просто не хочу повторять заново (опять же) в этот момент. И участки уже одобрены сотрудничеством, как есть. Если они меняются, даже если изменения невидимы (что они будут), мне придется снова пройти процесс утверждения. Поэтому сохранение существующих трасс предпочтительнее. В более общем случае некоторые вычисления могут быть запретительными для повторного запуска. Возможно, вам будет выставлен счет за процессорные часы. Хорошо иметь возможность спасти бег от такой ошибки. – jsw

Смежные вопросы