If I don’t misunderstand, it seems to be straightforward to implement like:
h_f, _ = self.forward_lstm(x) # say h_f has size (batch, seq, dim)
inv_idx = torch.arange(h_f.size(1)-1, -1, -1).long()
inv_h_f = h_f.index_select(1, inv_idx)
h_b, _ = self.backward_lstm(inv_h_f)

Then, you can manipulate h_b depending on your need. (be careful with the order as the input is reversed)