I'm trying to run this PyTorch code:
for i, (input, target) in enumerate(train_loader):
input = input.float().cuda(async=True)
target = target.cuda(async=True)
input_var = torch.autograd.Variable(input)
target_var = torch.autograd.Variable(target)
output = model(input_var)
But when I try I am getting this error message:
input = input.float().cuda(async=True)
^
SyntaxError: invalid syntax
Process finished with exit code 1
What am I doing wrong? I already installed cuda.
Your code does not work because:
async
is a reserved keyword in python which cannot be used in that way, that is why you get the SyntaxError
cuda()
no longer has an argument async
. The constructor looks like this:
cuda(device=None, non_blocking=False) → Tensor
async
but this replaced by non_blocking
as async
became a reserved keyword in Python 3.7.
non_blocking
:The argument non_blocking
has the same effect as async
previously had:
non_blocking
(bool):
IfTrue
and the source is in pinned memory, the copy will be asynchronous with respect to the host. Otherwise, the argument has no effect. Default:False
.
https://pytorch.org/docs/stable/tensors.html#torch.Tensor.cuda
As an add-on: If you are interested in what async
is actually used for you can take a look here:
https://www.python.org/dev/peps/pep-0492/#new-syntax
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With