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

使用torch.utils.load()从文件中加载PyTorch模型

发布时间:2024-01-02 20:37:24

加载PyTorch模型时,可以使用torch.utils.load()函数。该函数可以从文件中加载模型,并将其返回为一个PyTorch模型对象。加载之前,确保已安装PyTorch以及相关依赖包。

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

import torch
from torchvision.models import resnet18

# 创建一个resnet18模型实例
model = resnet18()

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

# 加载模型
loaded_model = resnet18()
loaded_model.load_state_dict(torch.load('resnet18.pth'))
loaded_model.eval()

# 运行模型
input = torch.randn(1, 3, 224, 224)
output = loaded_model(input)

在上面的示例中,首先我们创建了一个resnet18模型实例,并将其保存到文件resnet18.pth中。接着,我们使用torch.load()函数加载模型,并将其赋值给loaded_model。加载模型之后,记得调用eval()方法切换模型到评估模式。

接下来,我们可以使用loaded_model对输入数据进行预测。在上面的示例中,我们随机生成了一个输入数据input,然后调用loaded_model来执行预测,得到输出结果output

当然,load()方法还可以加载整个模型及其参数,而不仅仅是模型的状态字典。示例如下:

import torch

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

# 加载整个模型
loaded_model = torch.load('model.pth')
loaded_model.eval()

# 运行模型
input = torch.randn(1, 3, 224, 224)
output = loaded_model(input)

在这个示例中,我们使用torch.save()函数保存整个模型,然后使用torch.load()函数加载整个模型。这里不需要调用load_state_dict()函数,因为整个模型已经被加载了。

总的来说,torch.utils.load()函数是一个方便的工具,可以帮助我们从文件中加载PyTorch模型。无论是加载模型的状态字典还是整个模型,都可以使用这个函数来轻松地实现。