2013-06-10 5 views
1

У меня были довольно дорогие модели с длинным временем сжигания. Я бы хотел сохранить &, чтобы восстановить состояние шаговых методов AdaptiveMetropolis (по крайней мере), чтобы сократить время записи. Есть ли рекомендуемый способ сделать это, или я должен просто набрать step_method.current_state() dict и попытаться обновить step_method.C, step_method.proposal_sd и, возможно, другие из маринованных данных, когда я хочу перезапустить?Как сохранить/восстановить состояние метода шага AdaptiveMetropolis?

(кросс-пост из устаревшего форума Google Group: https://groups.google.com/forum/#!topic/pymc/6U72WuuXmMo)

+0

На данный момент это, кажется, вычислительный вопрос («как мне получить это программное обеспечение для выполнения этой конкретной задачи?»), а не вопрос статистики. Не могли бы вы более четко определить конкретную статистическую проблему или подумать о том, чтобы помечать ее для перемещения в StackOverflow? –

+0

вы можете показать нам какой-то код? тоже просим пометьте ваш вопрос. это похоже на python (на основе ссылки на рассол) – booyaa

+0

@booyaa - извините, это вопрос pymc, который предназначался для их форумов, в котором мне предлагалось публиковать сообщения по перекрестной проверке, которые затем перенаправили меня сюда ... Я, ll обработать образец кода ... – keflavich

ответ

1

вы пробовали с помощью save_state и restore_sampler_state методы? Они должны работать с любым не-sqlite бэкэнд (например, pickle, txt). Первый должен сохранить информацию о сэмплере в базе данных; здесь приведен пример:

{'stochastics': {'alpha': array([-0.20073951]), 'beta': array([ 2.77634734])}, 'step_methods': {'AdaptiveMetropolis_beta_alpha': {'C': array([[ 41.28628017, 2.79567393], 
     [ 2.79567393, 1.8832875 ]]), '_trace': [array([ 10.4010084 , 1.48321645]), ... [ 0.43509455, 1.30152996]]), 
     'accepted': 69.0, 'shrink_if_necessary': False}}, 
     'sampler': {'status': 'ready', '_iter': 2000, '_tune_interval': 1000, '_tuned_count': 0, '_tune_throughout': True, '_burn_till_tuned': False, '_current_iter': 2000, '_burn': 0, '_thin': 1}} 
+0

Что делать, если выборка была выполнена с использованием RAM-сервера? Есть ли способ сохранить это состояние? – keflavich

+0

Состояние будет сохранено в атрибуте '_state_' в башенном бассете как dict. –

+0

Нет атрибута '_state_', а' _state' - просто список. '.current_state()' читает атрибуты, обозначенные '_state', это то, что вы имеете в виду? – keflavich

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