This repo contains code for Hidden Markov Models (HMMs) in PyTorch, including the forward algorithm, the Viterbi algorithm, and sampling. Training is implemented by backpropagating the negative log-likelihood from the forward algorithm, instead of using the EM algorithm.
You can read a notebook which covers the theory of HMMs and implements the model in PyTorch piece-by-piece here.