Как использовать HiddenMarkovModel от вероятности тензорного потока?
Я следую этому уроку:
в нем есть код, который ссылается на класс 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, чтобы узнать о дальнейших проблемах.