gpt4 book ai didi

python - PyTorch 的文档 .to ('cpu' ) 或 .to ('cuda' )

转载 作者:行者123 更新时间:2023-12-03 13:43:27 28 4
gpt4 key购买 nike

我已经搜索了 PyTorch documenation ,但找不到 .to() 的任何内容它将张量移动到 CPU 或 CUDA 内存。

我记得在某个地方看到过这样的电话 to()nn.Module是就地操作,但不是张量。
Tensor 是否有就地版本? ?

我在哪里可以找到 to() 的 doco两者都适用 nn.ModuleTensor (也可能在其他地方)?

最佳答案

您已经找到了文档!伟大的。
.to不是张量的就地操作。但是,如果不需要移动,它会返回相同的张量。

In [10]: a = torch.rand(10)

In [11]: b = a.to(torch.device("cuda"))

In [12]: b is a
Out[12]: False

In [18]: c = b.to(torch.device("cuda"))

In [19]: c is b
Out[19]: True

b已经在 gpu 上,因此没有进行任何更改和 c is b结果 True .

然而,对于模型,它是一个就地操作,它也返回一个模型。
In [8]: import torch
In [9]: model = torch.nn.Sequential (torch.nn.Linear(10,10))

In [10]: model_new = model.to(torch.device("cuda"))
In [11]: model_new is model
Out[11]: True

将其保留在模型中是有意义的,因为模型的参数需要移动到另一个设备而不是 model目的。对于张量,似乎创建了新对象。

关于python - PyTorch 的文档 .to ('cpu' ) 或 .to ('cuda' ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53570334/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com