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

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

发布时间:2024-01-02 20:38:38

torch.utils.load()是PyTorch中的一个函数,它可以用于加载已保存的PyTorch模型。加载模型后,我们可以使用该模型进行推理、评估或继续训练等操作。

下面是一个使用torch.utils.load()加载已保存模型的例子:

首先,我们需要先定义一个模型并将其保存为文件。假设我们有一个简单的全连接神经网络,如下所示:

import torch
import torch.nn as nn

# 定义神经网络
class SimpleNet(nn.Module):
    def __init__(self):
        super(SimpleNet, self).__init__()
        self.fc1 = nn.Linear(10, 20)
        self.fc2 = nn.Linear(20, 1)

    def forward(self, x):
        x = torch.relu(self.fc1(x))
        x = self.fc2(x)
        return x

# 实例化模型
model = SimpleNet()

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

其中,我们使用了torch.save()将模型的state_dict保存到了文件'model.pth'中。

接下来,我们可以使用torch.utils.load()加载已保存的模型,并使用该模型进行推理或其他操作。下面是一个加载模型并进行推理的例子:

import torch
import torch.nn as nn

# 实例化模型
model = SimpleNet()

# 加载已保存的模型
model.load_state_dict(torch.load('model.pth'))

# 设置模型为推理模式
model.eval()

# 创建输入数据
input_data = torch.randn(1, 10)

# 进行推理
output = model(input_data)
print(output)

在上面的例子中,我们首先实例化了模型SimpleNet(),然后调用model.load_state_dict()函数加载了已保存的模型。之后,我们将模型设置为推理模式(model.eval()),并创建了输入数据input_data。最后,我们使用加载的模型进行推理,并打印输出结果。

需要注意的是,加载已保存的模型时,需要与保存模型时相同的模型结构。否则,加载操作可能会失败或产生错误的结果。

总结来说,使用torch.utils.load()可以方便地加载已保存的PyTorch模型,并使用该模型进行各种操作,如推理、评估或继续训练。这样,我们可以在需要时保存和加载模型,以便于使用和共享模型。