bounding the packing inside a different default tensor type is a hack that I have found works
torch.set_default_tensor_type(torch.FloatTensor)
<call to pack padded sequences>
if self.device == torch.device("cuda"):
        torch.set_default_tensor_type(torch.cuda.FloatTensor)

Hopefully this works for you