Calling cuda() with async results in SyntaxError
There was an async
parameter but it was deprecated now, because async
became a reserved word in Python 3.7. Details are included in this issue rename .cuda(async=..) parameters. You can use non_blocking
as an alternative.
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 theSyntaxError
cuda()
no longer has an argumentasync
. The constructor looks like this:
cuda(device=None, non_blocking=False) → Tensor
- Previously there was an argument
async
but this replaced bynon_blocking
asasync
became a reserved keyword in Python 3.7.
https://github.com/pluskid/fitting-random-labels/pull/5
Use instead 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