Been getting this error RuntimeError: cudnn RNN backward can only be called in training mode

Could you add a print statement to check for the .training flag in all RNN layers?
Based on the error message it seems that model.eval() was called (unexpectedly), so you would need to isolate where this call is coming from.

This error message is raised, because cudnn doesn’t store intermediate tensors, when used during evaluation and these would be the workarounds, but I assume you’ve already seen the thread.