I don’t see how the Seq2Seq model was initialized, but it seems that at least the internal decoder uses a device which specifies a GPU.
Could you check, if all self.device attributes are passed correctly?