I have implemented a sequence-to-sequence model in PyTorch (v. 0.3.0post4) [Ubuntu 16.04] using Recurrent Neural Networks. I am trying to use pin_memory() to speed up the training as follows:
input_tensor = torch.LongTensor(...))
target_var = Variable(torch.LongTensor(...))

if USE_CUDA:
    input_var = input_tensor.pin_memory()
    target_var = target_var.cuda(async=True)

But during training, I get the following error:
  File "xyz.py", line 224, in batch_pairs
    target_var = target_var.cuda(async=True)
  File "/usr/local/lib/python3.5/dist-packages/torch/autograd/variable.py", line 298, in cuda
    return CudaTransfer.apply(self, device, async)
  File "/usr/local/lib/python3.5/dist-packages/torch/autograd/_functions/tensor.py", line 201, in forward
    return i.cuda(async=async)
  File "/usr/local/lib/python3.5/dist-packages/torch/_utils.py", line 69, in _cuda
    return new_type(self.size()).copy_(self, async)
RuntimeError: invalid argument 3: Source tensor must be contiguous at /pytorch/torch/lib/THC/generic/THCTensorCopy.c:114


I have no idea what could be causing this. Any tips would be appreciated. Thanks!