Hi @guyrose3
If you take a quick look at the LSTM documentation 3, it seems that passing a (seq_len, batch, input_size) tensor to a nn.LSTM layer gives us a (seq_len, batch, hidden_size * num_directions) output. You can simply call a sum() over this output tensor. Borrowing your variable names, here is what the code would look like:
def forward(self, input_seq):
    output, self.hidden = self.rec_net(input_seq, self.hidden)
    # output is now (seq_len, batch, hidden_size * num_directions)
    output = output.sum(dim=0)
    # output is now (batch, hidden_size * num_directions)
    output = self.fc(output)
    # output is now (batch, fc_output_size)
    return output