Как использовать HiddenMarkovModel от вероятности тензорного потока?

Я следую этому уроку:

https://github.com/tensorflow/probability/blob/master/tensorflow_probability/examples/jupyter_notebooks/Multiple_changepoint_detection_and_Bayesian_model_selection.ipynb

в нем есть код, который ссылается на класс HiddenMarkovModel и использует его в tfp. код, который делает это в руководстве, находится здесь:

import tensorflow_probability as tfp
from tensorflow_probability import distributions as tfd

hmm = tfd.HiddenMarkovModel(
  initial_distribution=tfd.Categorical(
      logits=batch_initial_state_logits),
  transition_distribution=tfd.Categorical(probs=batch_transition_probs),
  observation_distribution=tfd.Poisson(trainable_rates),
  num_steps=len(observed_counts))

Однако, когда я попадаю в эту строку, я получаю следующую ошибку:

AttributeError: module 'tensorflow_probability.python.distributions' has no attribute 'HiddenMarkovModel'

Проверка документации для раздачи в tfp здесь:

https://www.tensorflow.org/probability/api_docs/python/tfp/distributions

Я вижу, что нет класса HiddenMarkovModel, поэтому мне интересно, что я делаю неправильно, чтобы не получить этот класс, который используется в учебнике? Это официальное руководство, поэтому я не могу представить, что оно "неправильное", и класс HiddenMarkovModel не существует.

2 ответа

Решение

Текущая стабильная версия 0.5 была выпущена некоторое время назад. Документы API соответствуют этой версии. Мы находимся в процессе подготовки 0.6 к выпуску, который имеет HMM. В то же время вы можете установить tfp-nightly, чтобы получить последние достижения. Затем вы должны обязательно удалить тот, который у вас есть (pip uninstall tensorflow-probability) и аналогичным образом установите tf-nightly вместо стабильного TensorFlow. НТН! Спасибо за использование tfp!

Как упоминал @wpercy в своих комментариях, всегда полезно обратиться к репозиторию Github. Я мучился с этой проблемой последние 4 дня. Просто обратитесь к репозиторию Github и самостоятельно проверьте иерархию.

Например, для HiddenMarkovModel выполните поиск в параметре «Перейти к файлу» в графическом интерфейсе Git, и он показал, что HiddenMarkovModel на самом деле является классом в hidden_markov_model.py. Таким образом, правильный оператор импорта становится from tensorflow_probability.python.distributions.hidden_markov_model import HiddenMarkovModel.

То же самое и с другими функциями, такими как from tensorflow_probability.python.distributions.categorical import Categorical

Посетите https://github.com/tensorflow/probability/blob/master/tensorflow_probability/python/distributions/hidden_markov_model.py, чтобы узнать о дальнейших проблемах.

Другие вопросы по тегам