Imo this largely relies on what is in your training code and how you create batches.
The hidden state of the LSTM encodes what the model has seen so far during training.
So If you assume a certain window and an input to the LSTM would be a randomized batch of several unrelated windows you will need to re-initialize your hidden state each training batch.
If your batch size = 1 and you train without randomization and no windows (not sure how), you still need to initialize the hidden state at each epoch otherwise the LSTM will think it’s a continuation of the previous epoch not a 2nd pass over the training data.