pat*_*_ai 4 python gpu distribution deep-learning pytorch
是否可以让 PyTorch 发行版直接在 GPU 上创建样本。
如果我做
from torch.distributions import Uniform, Normal
normal = Normal(3, 1)
sample = normal.sample()
Run Code Online (Sandbox Code Playgroud)
然后样本将在CPU上。当然,sample = sample.to(torch.device("cuda"))
在 GPU 上制作也是可以的。但是有没有办法让样本直接进入 GPU,而不需要先在 CPU 上创建它呢?
PyTorch 发行版继承自Object
,nn.Module
因此它没有to
将发行版实例放在 GPU 上的方法。
有任何想法吗?
分布使用重新参数化技巧。因此,将 GPU 上大小为 0 的张量提供给分布构造函数即可。如下:
normal = Normal(torch.tensor(0).to(device=torch.device("cuda")), torch.tensor(1).to(device=torch.device("cuda")))
Run Code Online (Sandbox Code Playgroud)