欢迎访问宙启技术站
智能推送

PyTorch中如何使用torch.utils.load()加载保存的模型

发布时间:2024-01-02 20:41:21

在PyTorch中,可以使用torch.load()函数加载保存的模型。torch.load()函数接受一个文件路径作为输入,返回加载的模型。

下面是一个加载模型的简单示例:

import torch
import torch.nn as nn

# 定义一个简单的模型
class SimpleModel(nn.Module):
    def __init__(self):
        super(SimpleModel, self).__init__()
        self.linear = nn.Linear(10, 1)
    
    def forward(self, x):
        return self.linear(x)

# 创建模型实例
model = SimpleModel()

# 保存模型
torch.save(model.state_dict(), 'model.pth')

# 加载模型
model_loaded = SimpleModel()
model_loaded.load_state_dict(torch.load('model.pth'))

# 使用加载的模型进行预测
input = torch.randn(1, 10)
output = model_loaded(input)

print(output)

在这个例子中,首先定义了一个简单的模型SimpleModel,模型中包含一个线性层。然后创建了一个模型实例model

使用torch.save()函数保存模型的状态字典model.state_dict()到文件model.pth

接下来,创建了一个新的SimpleModel模型实例model_loaded

使用torch.load()函数加载保存的模型状态字典torch.load('model.pth'),然后调用模型实例的load_state_dict()方法加载状态字典到model_loaded

最后,使用加载的模型进行预测,将随机生成的输入input传递给模型model_loaded,输出模型的预测结果output

需要注意的是,加载的模型的结构和原始模型的结构应该是完全一样的,否则加载的模型会因为参数不匹配而报错。在这个例子中,我们加载的模型和原始模型都是SimpleModel,因此结构是一样的。

总结来说,使用torch.load()函数加载保存的模型非常简单,只需要提供保存的模型文件路径即可。同时也需要注意加载模型时模型结构的一致性。