I'm in the process of rebuilding a network using PyTorch. The Keras implementation uses a LSTM module with the parameter
model = Sequential() ... model.add(LSTM(output_dim=z, go_backwards=True))
According to the Tensorflow Doc this
process[es] the input sequence backwards and return[s] the reversed sequence.
Sadly, I'm not sure how to reimplement this behavior in PyTorch, as there is no similar functionality implemented (as far as I know). I tried looking up the keras implementation but got lost somewhere in the keras backend.py ... Would it be sufficient to reverse the input passed into the LSTM regarding the relevant dimension and do the same to the output? Do you have another idea?
class Model(nn.Module): def __init__(self): super().__init__() ... self.lstm = nn.LSTM(input_size=y,hidden_size=z,batch_first=True) ... def forward(self, x): ... x = torch.flip(x, ) x, _ = self.lstm(x) x = torch.flip(x, )
Please ask if you need more information on what I'm trying to accomplish. Thank you in advance!