pytorch实现从本地加载 .pth 格式模型

在PyTorch中,我们可以使用.pth格式保存模型的权重和参数。在本文中,我们将详细讲解如何从本地加载.pth格式的模型。我们将使用两个示例来说明如何完成这些步骤。

示例1:加载全连接神经网络模型

以下是加载全连接神经网络模型的步骤:

import torch
import torch.nn as nn

# 定义模型
class Net(nn.Module):
    def __init__(self):
        super(Net, self).__init__()
        self.fc1 = nn.Linear(784, 128)
        self.fc2 = nn.Linear(128, 10)

    def forward(self, x):
        x = x.view(-1, 784)
        x = torch.relu(self.fc1(x))
        x = self.fc2(x)
        return x

model = Net()

# 加载模型权重
model.load_state_dict(torch.load('model.pth'))

# 使用模型进行预测
with torch.no_grad():
    inputs = torch.randn(1, 784)
    outputs = model(inputs)
    print(outputs)

在上述代码中,我们首先定义了一个简单的全连接神经网络Net,它含有一个输入层、一个隐藏层和一个输出层。然后,我们创建了一个模型实例model。我们使用model.load_state_dict()加载模型的权重,并使用with torch.no_grad()来禁用梯度计算,因为我们不需要计算梯度或更新权重。在使用模型进行预测时,我们使用torch.randn()函数生成一个随机输入,并将其传递给模型。

示例2:加载卷积神经网络模型

以下是加载卷积神经网络模型的步骤:

import torch
import torch.nn as nn

# 定义模型
class Net(nn.Module):
    def __init__(self):
        super(Net, self).__init__()
        self.conv1 = nn.Conv2d(1, 32, kernel_size=5, padding=2)
        self.conv2 = nn.Conv2d(32, 64, kernel_size=5, padding=2)
        self.fc1 = nn.Linear(7 * 7 * 64, 1024)
        self.fc2 = nn.Linear(1024, 10)

    def forward(self, x):
        x = torch.relu(self.conv1(x))
        x = torch.max_pool2d(x, 2)
        x = torch.relu(self.conv2(x))
        x = torch.max_pool2d(x, 2)
        x = x.view(-1, 7 * 7 * 64)
        x = torch.relu(self.fc1(x))
        x = self.fc2(x)
        return x

model = Net()

# 加载模型权重
model.load_state_dict(torch.load('model.pth'))

# 使用模型进行预测
with torch.no_grad():
    inputs = torch.randn(1, 1, 28, 28)
    outputs = model(inputs)
    print(outputs)

在上述代码中,我们首先定义了一个简单的卷积神经网络Net,它含有两个卷积层、两个池化层和一个全连接层。然后,我们创建了一个模型实例model。我们使用model.load_state_dict()加载模型的权重,并使用with torch.no_grad()来禁用梯度计算,因为我们不需要计算梯度或更新权重。在使用模型进行预测时,我们使用torch.randn()函数生成一个随机输入,并将其传递给模型。

结论

在本文中,我们详细讲解了如何从本地加载.pth格式的模型。我们使用了两个示例来说明如何完成这些步骤。如果您按照这些步骤操作,您应该能够成功加载模型并使用它们进行预测。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:pytorch实现从本地加载 .pth 格式模型 - Python技术站

(0)
上一篇 2023年5月15日
下一篇 2023年5月15日

相关文章

  • pytorch函数之torch.normal()

    Returns a Tensor of random numbers drawn from separate normal distributions who’s mean and standard deviation are given. 这个是官网给出的解释,大意是返回一个张量,张量里面的随机数是从相互独立的正态分布中随机生成的。 根据官网中给出的实例进…

    PyTorch 2023年4月8日
    00
  • pytorch下的lib库 源码阅读笔记(2)

    2017年11月22日00:25:54 对lib下面的TH的大致结构基本上理解了,我阅读pytorch底层代码的目的是为了知道 python层面那个_C模块是个什么东西,底层完全黑箱的话对于理解pytorch的优缺点太欠缺了。 看到 TH 的 Tensor 结构体定义中offset等变量时不甚理解,然后搜到个大牛的博客,下面是第一篇: 从零开始山寨Caffe…

    PyTorch 2023年4月8日
    00
  • 详解 PyTorch Lightning模型部署到生产服务中

    详解 PyTorch Lightning模型部署到生产服务中 PyTorch Lightning是一个轻量级的PyTorch框架,可以帮助我们更快地构建和训练深度学习模型。在本文中,我们将介绍如何将PyTorch Lightning模型部署到生产服务中,包括模型导出、模型加载和模型预测等。 模型导出 在将PyTorch Lightning模型部署到生产服务中…

    PyTorch 2023年5月15日
    00
  • PyTorch加载预训练模型实例(pretrained)

    PyTorch是一个非常流行的深度学习框架,它提供了许多预训练模型,可以用于各种任务,例如图像分类、目标检测、语义分割等。在本教程中,我们将学习如何使用PyTorch加载预训练模型。 加载预训练模型 在PyTorch中,我们可以使用torchvision.models模块来加载预训练模型。该模块提供了许多流行的模型,例如ResNet、VGG、AlexNet等…

    PyTorch 2023年5月15日
    00
  • PyTorch环境配置及安装过程

    以下是PyTorch环境配置及安装过程的完整攻略,包括Windows、macOS和Linux三个平台的安装步骤。同时,还提供了两个示例说明。 Windows平台 1. 安装Anaconda 在Windows平台上,我们可以使用Anaconda来安装PyTorch。首先,我们需要下载并安装Anaconda。可以在官网上下载对应的安装包,然后按照提示进行安装。 …

    PyTorch 2023年5月16日
    00
  • Pytorch学习(一)—— 自动求导机制

      现在对 CNN 有了一定的了解,同时在 GitHub 上找了几个 examples 来学习,对网络的搭建有了笼统地认识,但是发现有好多基础 pytorch 的知识需要补习,所以慢慢从官网 API 进行学习吧。   这一部分做了解处理,不需要完全理解的明明白白的。 Excluding subgraphs from backward   每一个 Tensor…

    2023年4月6日
    00
  • pytorch imagenet测试代码

    image_test.py import argparse import numpy as np import sys import os import csv from imagenet_test_base import TestKit import torch class TestTorch(TestKit): def __init__(self): s…

    PyTorch 2023年4月8日
    00
  • Pytorch 之损失函数

    1. torch.nn.MSELoss    均方损失函数,一般损失函数都是计算一个 batch 数据总的损失,而不是计算单个样本的损失。 $$L = (x – y)^{2}$$    这里 $L, x, y$ 的维度是一样的,可以是向量或者矩阵(有多个样本组合),这里的平方是针对 Tensor 的每个元素,即 $(x-y)**2$ 或 $torch.pow…

    2023年4月6日
    00
合作推广
合作推广
分享本页
返回顶部