I’m doing NLP sentence classification and for each epoch we have a batch of sentences and I call

hidden = repackage_hidden(hidden)

after each batch to clear the variable history.
My question is should I also call

hidden = net.init_hidden(batch_size)

after every batch? Meaning every batch of sentences will see a zero hidden state each time, or let the hidden that was learned from the previous batch be used as an input on the next one?