You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PyTorch中model.to(device)的返回值及API文档查询咨询

PyTorch中model.to()的作用与返回值说明

核心定义

model.to()是PyTorch nn.Module类的内置方法,用于将模型的所有参数和缓冲区移动到指定计算设备(CPU/GPU)。

返回值明确结论

  • 常规调用(无额外参数)时,model.to(device)会原地修改原模型,同时返回原模型的引用。也就是说,你的代码里modelBigram0和modelBigram1指向的是同一个模型实例——执行完to(device)后,modelBigram0的参数已经移到目标设备,modelBigram1只是它的别名。
  • 仅当显式传入copy=True参数(部分PyTorch版本支持)时,才会返回一个全新的模型副本,此时原模型不会被修改。但这个参数属于进阶用法,日常场景几乎用不到。

针对你的代码验证

modelBigram0 = BigramLanguageModel(vocab_size)
modelBigram1 = modelBigram0.to(device)

执行后可以通过以下代码验证两者是同一对象:

print(modelBigram0 is modelBigram1)  # 输出True
print(next(modelBigram0.parameters()).device)  # 输出目标设备

额外提示

如果需要创建模型的独立副本并移动到设备,更可靠的方式是先深拷贝模型,再调用to(device):

from copy import deepcopy
modelBigram1 = deepcopy(modelBigram0).to(device)

内容的提问来源于stack exchange,提问作者bobby wang

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.21 22:32:40