Well, there is the option of setting the default tensor type via:
torch.set_default_tensor_type(torch.cuda.FloatTensor)

but I would recommend avoiding it, as this will create all tensors on the device, which are not necessarily needed on the GPU and you might run in a lot of issues.
I understand that the device argument might be a bit cumbersome, but I personally think it’s the cleanest way of writing the code.
However, any suggestions on improving the user experience are more then welcome.
As already said, I’m not a huge fan of changing the default dtype, but how would a “good” API look like for your use case?
Could you post a pseudo code for it?