pytorch中的to(device)和map_location=device有什么区别
导读:本文共1887字符,通常情况下阅读需要6分钟。同时您也可以点击右侧朗读,来听本文内容。按键盘←(左) →(右) 方向键可以翻页。
摘要: 一、简介将map_location函数中的参数设置 torch.load()为 cuda:device_id。这会将模型加载到给定的GPU设备。调用model.to(torch.device('cuda'))将模型的参数张量转换为CUDA张量,无论在cpu上训练还是gpu上训练,保存的模型参数都是参数张量不是cuda张量,因此,cpu设备上不需要... ...
目录
(为您整理了一些要点),点击可以直达。将map_location
函数中的参数设置 torch.load()
为 cuda:device_id
。这会将模型加载到给定的GPU设备。
调用model.to(torch.device('cuda'))
将模型的参数张量转换为CUDA张量,无论在cpu上训练还是gpu上训练,保存的模型参数都是参数张量不是cuda张量,因此,cpu设备上不需要使用torch.to(torch.device("cpu"))
。
了解了两者代表的意义,以下介绍两者的使用。
保存:
加载:
解释:
在使用GPU训练的CPU上加载模型时,请传递 torch.device('cpu')
给map_location
函数中的 torch.load()
参数,使用map_location
参数将张量下面的存储器动态地重新映射到CPU设备 。
保存:
加载:
解释:
在GPU上训练并保存在GPU上的模型时,只需将初始化model模型转换为CUDA优化模型即可model.to(torch.device('cuda'))
。
此外,请务必.to(torch.device('cuda'))
在所有模型输入上使用该 功能来准备模型的数据。
请注意,调用my_tensor.to(device)
返回my_tensorGPU
上的新副本。
它不会覆盖 my_tensor
。
因此,请记住手动覆盖张量: my_tensor = my_tensor.to(torch.device('cuda'))
保存:
加载:
解释:
在已训练并保存在CPU上的GPU上加载模型时,请将map_location函数中的参数设置 torch.load()
为 cuda:device_id
。
这会将模型加载到给定的GPU设备。
接下来,请务必调用model.to(torch.device('cuda'))
将模型的参数张量转换为CUDA张量。
最后,确保.to(torch.device('cuda'))
在所有模型输入上使用该 函数来为CUDA优化模型准备数据。
请注意,调用 my_tensor.to(device)
返回my_tensorGPU
上的新副本。
它不会覆盖my_tensor
。
因此,请记住手动覆盖张量:my_tensor = my_tensor.to(torch.device('cuda'))
pytorch中的to(device)和map_location=device有什么区别的详细内容,希望对您有所帮助,信息来源于网络。