使用torch.utils.load()从文件中加载已训练好的PyTorch模型
发布时间:2024-01-02 20:40:30
使用torch.utils.load()函数可以从文件中加载已经训练好的PyTorch模型。这个函数可以加载保存在硬盘上的模型参数,以便我们可以在模型训练之外使用它们。
下面是一个加载已训练好的PyTorch模型的例子。
首先,我们需要定义一个简单的模型,以便训练和保存。
import torch
import torch.nn as nn
import torch.optim as optim
# 定义一个简单的模型
class SimpleModel(nn.Module):
def __init__(self):
super(SimpleModel, self).__init__()
self.fc = nn.Linear(10, 1)
def forward(self, x):
return self.fc(x)
# 初始化模型和数据
model = SimpleModel()
input_data = torch.randn(1, 10)
# 定义优化器和损失函数
criterion = nn.MSELoss()
optimizer = optim.SGD(model.parameters(), lr=0.01)
# 训练模型
for i in range(100):
optimizer.zero_grad()
output = model(input_data)
loss = criterion(output, torch.tensor([1.0]))
loss.backward()
optimizer.step()
# 保存模型参数
torch.save(model.state_dict(), "model.pth")
以上代码首先定义了一个简单的线性模型 SimpleModel,并使用随机生成的数据进行训练。最后使用 torch.save() 函数保存了模型的参数为 "model.pth" 文件。
现在让我们使用 torch.utils.load() 函数来加载保存的模型参数:
import torch
import torch.nn as nn
# 初始化模型
model = SimpleModel()
# 加载模型参数
model.load_state_dict(torch.load("model.pth"))
# 使用加载的模型进行预测
input_data = torch.randn(1, 10)
output = model(input_data)
print(output)
在以上代码中,首先我们需要初始化一个相同结构的模型 SimpleModel。然后使用 model.load_state_dict() 函数来加载保存的模型参数。最后,我们可以使用加载的模型进行预测。
加载的模型在使用之前需要指定模型的结构,确保加载的参数可以正确应用于模型中。
总结起来,使用 torch.utils.load() 函数可以轻松加载保存的模型参数,以便我们可以在其他任务中使用这些训练好的参数。注意,在加载参数之前,需要确保定义的模型结构与保存时的模型结构一致。
