深度学习技术栈 —— Pytorch中保存与加载权重文件

这篇具有很好参考价值的文章主要介绍了深度学习技术栈 —— Pytorch中保存与加载权重文件。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、权重文件的格式

权重文件是指训练好的模型参数文件,不同的深度学习框架和模型可能使用不同的权重文件格式。以下是一些常见的权重文件格式:
PyTorch的模型格式:.pt文件。
Darknet的模型格式:.weight文件。
TensorFlow的模型格式:.ckpt文件。

一、参考文章或视频链接
[1] Navigating Model Weight File Formats: .safetensors, .bin, .pt, HDF5, and Beyond

---------------------------------------------------------------------------------------------------------------------------------------------------------------------

二、保存权重文件

没有人想让自己的辛苦白费,计算好的权重文件就应该保存下来,不仅方便自己,也方便他人。

# Define model
class TheModelClass(nn.Module):
    def __init__(self):
        super(TheModelClass, self).__init__()
        self.conv1 = nn.Conv2d(3, 6, 5)
        self.pool = nn.MaxPool2d(2, 2)
        self.conv2 = nn.Conv2d(6, 16, 5)
        self.fc1 = nn.Linear(16 * 5 * 5, 120)
        self.fc2 = nn.Linear(120, 84)
        self.fc3 = nn.Linear(84, 10)

    def forward(self, x):
        x = self.pool(F.relu(self.conv1(x)))
        x = self.pool(F.relu(self.conv2(x)))
        x = x.view(-1, 16 * 5 * 5)
        x = F.relu(self.fc1(x))
        x = F.relu(self.fc2(x))
        x = self.fc3(x)
        return x

# Initialize model
model = TheModelClass()

# Initialize optimizer
optimizer = optim.SGD(model.parameters(), lr=0.001, momentum=0.9)

# Print model's state_dict
print("Model's state_dict:")
for param_tensor in model.state_dict():
    print(param_tensor, "\t", model.state_dict()[param_tensor].size())

# Print optimizer's state_dict
print("Optimizer's state_dict:")
for var_name in optimizer.state_dict():
    print(var_name, "\t", optimizer.state_dict()[var_name])

# 保存权重的方法torch.save
torch.save(model.state_dict(), PATH)
二、参考文章或视频链接
[1] SAVING AND LOADING MODELS - Pytorch
[2] MODELS AND PRE-TRAINED WEIGHTS - Pytorch
[3] Introducing TorchVision’s New Multi-Weight Support API - Pytorch
[4] PyTorch Model Eval + Examples

三、加载权重文件

3.1 nn.module.eval()方法

在 PyTorch 中,nn.Module是一个非常重要的类,用于实现各种神经网络层和模型。在使用 nn.Module进行训练和推理时,有时需要将模型设置为评估模式,这可以通过调用eval()方法实现。在评估模式下,PyTorch 中的某些层和操作会发生一些变化,例如 Dropout 和 BatchNormalization 层会被禁用,因为它们在训练和推理时的行为是不同的。此外,在eval()下,模型不会进行梯度计算(这也是预训练的意义所在),这可以提高推理速度并减少内存使用。
使用eval()方法将模型设置为评估模式非常简单,只需要在模型实例上调用该方法即可,调用eval()后,既然不会进行梯度计算,那自然也不会更新权重了,要不然加载好了一个预训练好的权重模型,又被调整了那不是哭死文章来源地址https://www.toymoban.com/news/detail-804514.html

3.1 参考文章或视频链接
[1] 《model.eval 至关重要!!!!model.eval()是否开启 BN 和 Dropout 的不同》 - CSDN
[2] What’s the meaning of function eval() in torch.nn module - stackoverflow self.training=False

到了这里,关于深度学习技术栈 —— Pytorch中保存与加载权重文件的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • (十)人工智能应用--深度学习原理与实战--模型的保存与加载使用

    目的:将训练好的模型保存为文件,下次使用时直接加载即可,不必重复建模训练。 神经网络模型训练好之后,可以保存为文件以持久存储,这样下次使用时就不重新建模训练,直接加载就可以。TensorfLow提供了灵活的模型保存方案,既可以同时保存网络结构和权重(即保存全模

    2024年02月13日
    浏览(54)
  • 深度学习-Pytorch数据集构造和分批加载

    pytorch 目前在深度学习具有重要的地位,比起早先的caffe,tensorflow,keras越来越受到欢迎,其他的深度学习框架越来越显得小众。 数据分析 数据分析-Pandas如何转换产生新列 数据分析-Pandas如何统计数据概况 数据分析-Pandas如何轻松处理时间序列数据 数据分析-Pandas如何选择数据

    2024年01月25日
    浏览(51)
  • 【使用机器学习和深度学习对城市声音进行分类】基于两种技术(ML和DL)对音频数据(城市声音)进行分类(Matlab代码实现)

     💥💥💞💞 欢迎来到本博客 ❤️❤️💥💥 🏆博主优势: 🌞🌞🌞 博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️ 座右铭: 行百里者,半于九十。 📋📋📋 本文目录如下: 🎁🎁🎁 目录 💥1 概述 📚2 运行结果 2.1 算例1 2.2 算例2 2.3 算例3 2.4 算例4

    2024年02月16日
    浏览(47)
  • 【pytorch】使用训练好后的模型权重,在验证集上输出分类的混淆矩阵并保存错误图片

    在机器学习领域,混淆矩阵是一个非常有用的指标,它可以帮助我们更好地理解模型在验证集上的表现。本文介绍了如何使用pytorch框架,利用训练好后的模型权重,在验证集上输出分类的混淆矩阵,并保存错误图片的方法。 首先,我们需要准备一个pytorch框架的模型,并将模

    2024年02月13日
    浏览(38)
  • PyTorch机器学习与深度学习技术方法

    近年来,随着AlphaGo、无人驾驶汽车、医学影像智慧辅助诊疗、ImageNet竞赛等热点事件的发生,人工智能迎来了新一轮的发展浪潮。尤其是深度学习技术,在许多行业都取得了颠覆性的成果。另外,近年来,Pytorch深度学习框架受到越来越多科研人员的关注和喜爱。 Python基础知

    2024年02月02日
    浏览(44)
  • 【深度学习】torch.utils.data.DataLoader相关用法 | dataloader数据加载器 | pytorch

    dataloader数据加载器属于是深度学习里面非常基础的一个概念了,基本所有的图像项目都会用上,这篇博客就把它的相关用法总结一下。 之所以要写这篇,是想分清楚len(data_loader)和len(data_loader.dataset) 这里加载的数据我们以Mnist手写数据集为例子 torchvision.datasets.MNIST是用来加载

    2024年02月16日
    浏览(54)
  • PyTorch模型的保存与加载

    载入muti-GPU模型: 载入muti-GPU权重: 载入CPU权重: 模型保存的格式: pytorch中最常见的模型保存使用 .pt 或者是 .pth 作为模型文件扩展名,其他方式还有.t7/.pkl格式,t7文件是沿用torch7中读取模型权重的方式,而在keras中则是使用.h5文件 .pth 文件基本信息 四个键值: model(Ord

    2023年04月21日
    浏览(37)
  • 深度学习技术栈 —— Pytorch之TensorDataset、DataLoader

    简单来说, TensorDataset 与 DataLoader 这两个类的作用, 就是将数据读入并做整合,以便交给模型处理。就像石油加工厂一样,你不关心石油是如何采集与加工的,你关心的是自己去哪加油,油价是多少,对于一个模型而言,DataLoader就是这样的一个予取予求的数据服务商。 参考

    2024年01月24日
    浏览(42)
  • 现有模型的保存与加载(PyTorch版)

    我们以VGG16网络为例,来说明现有模型的保存与加载操作。 保存与加载方式均有两种,接下来我们分别来学习这两种方式。 注意:保存与加载不在同一个py文件中,我们设定保存操作在save.py文件中,而加载操作在load.py文件中。 保存模型的两种方式如下代码所示,第一种为既

    2024年02月09日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包