【发布时间】:2020-08-31 22:53:51
【问题描述】:
我是 PyTorch 的新手,我正在探索 .to() 方法的功能。根据 CUDA 张量的 documentation,我发现可以在 CPU 和 GPU 内存之间传输张量。
# let us run this cell only if CUDA is available
if torch.cuda.is_available():
# creates a LongTensor and transfers it to GPU as torch.cuda.LongTensor
a = torch.full((10,), 3, device=torch.device("cuda"))
# transfers it to CPU, back to being a torch.LongTensor
b = a.to(torch.device("cpu"))
在这种情况下,我想知道是否总是需要将张量从 GPU 传输回 CPU,也许是为了释放 GPU 内存?不是,运行时会自动清除 GPU 内存吗?
除了使用在 CPU 和 GPU 之间传输数据之外,我想知道 .to() 方法的推荐用法(从内存的角度来看)。提前致谢。
【问题讨论】: