当前位置: 首页 > news >正文

淘客网站做弹窗广告宁波免费seo排名优化

淘客网站做弹窗广告,宁波免费seo排名优化,动态网站开发表格的代码,宁波网站建设选择荣胜网络1 pytorch保存和加载模型的三种方法 PyTorch提供了三种种方式来保存和加载模型,在这三种方式中,加载模型的代码和保存模型的代码必须相匹配,才能保证模型的加载成功。通常情况下,使用第一种方式(保存和加载模型状态字…

1 pytorch保存和加载模型的三种方法

PyTorch提供了三种种方式来保存和加载模型,在这三种方式中,加载模型的代码和保存模型的代码必须相匹配,才能保证模型的加载成功。通常情况下,使用第一种方式(保存和加载模型状态字典)更加常见,因为它更轻量且不依赖于特定的模型类。

1.1 仅保存和加载模型参数

1.1.1 保存模型参数

import torch
import torch.nn as nnmodel = nn.Sequential(nn.Linear(128, 16), nn.ReLU(), nn.Linear(16, 1))# 保存整个模型
torch.save(model.state_dict(), 'sample_model.pt')

1.1.2 加载模型参数

import torch
import torch.nn as nn# 下载模型参数 并放到模型中
loaded_model = nn.Sequential(nn.Linear(128, 16), nn.ReLU(), nn.Linear(16, 1))
loaded_model.load_state_dict(torch.load('sample_model.pt'))
print(loaded_model)

显示如下:

Sequential((0): Linear(in_features=128, out_features=16, bias=True)(1): ReLU()(2): Linear(in_features=16, out_features=1, bias=True)
)

net.state_dict(),在PyTorch中,Module 的可学习参数 (即权重和偏差),模块模型包含在参数中 (通过 model.parameters() 访问)。state_dict 是一个从参数名称隐射到参数 Tesnor 的有序字典对象。只有具有可学习参数的层(卷积层、线性层等) 才有 state_dict 中的条目。

1.2 保存和加载整个模型

1.2.1 保存整个模型

import torch
import torch.nn as nnnet = nn.Sequential(nn.Linear(128, 16), nn.ReLU(), nn.Linear(16, 1))# 保存整个模型,包含模型结构和参数
torch.save(net, 'sample_model.pt')

1.2.2  加载整个模型

import torch
import torch.nn as nn# 加载整个模型,包含模型结构和参数
loaded_model = torch.load('sample_model.pt')
print(loaded_model)

显示如下:

Sequential((0): Linear(in_features=128, out_features=16, bias=True)(1): ReLU()(2): Linear(in_features=16, out_features=1, bias=True)
)

1.3 导出和加载ONNX格式模型

1.3.1 保存模型

import torch
import torch.nn as nnmodel = nn.Sequential(nn.Linear(128, 16), nn.ReLU(), nn.Linear(16, 1))input_sample = torch.randn(16, 128)  # 提供一个输入样本作为示例
torch.onnx.export(model, input_sample, 'sample_model.onnx')

1.3.2 加载模型

import torch
import torch.nn as nn
import onnx
import onnxruntimeloaded_model = onnx.load('sample_model.onnx')
session = onnxruntime.InferenceSession('sample_model.onnx')
print(session)

2 模型保存与加载使用的函数

2.1 保存模型函数torch.save

将对象序列化保存到磁盘中,该方法原理是基于python中的pickle来序列化,各种Models,tensors,dictionaries 都可以使用该方法保存。保存的模型文件名可以是.pth, .pt, .pkl

def save(obj: object,f: FILE_LIKE,pickle_module: Any = pickle,pickle_protocol: int = DEFAULT_PROTOCOL,_use_new_zipfile_serialization: bool = True
) -> None:
  • obj:保存的对象
  • f:一个类似文件的对象(必须实现写入和刷新)或字符串或操作系统。包含文件名的类似路径对象
  • pickle_module:用于挑选元数据和对象的模块
  • pickle_protocol:可以指定以覆盖默认协议

2.2 加载模型函数torch.load

def load(f: FILE_LIKE,map_location: MAP_LOCATION = None,pickle_module: Any = None,*,weights_only: bool = False,**pickle_load_args: Any
) -> Any:
  • f:类文件对象 (返回文件描述符)或一个保存文件名的字符串
  • map_location:一个函数或字典规定如何映射存储设备,torch.device对象
  • pickle_module:用于 unpickling 元数据和对象的模块 (必须匹配序列化文件时的 pickle_module )

2.3 加载模型参数torch.nn.Module.load_state_dict

序列化 (Serialization)是将对象的状态信息转换为可以存储或传输的形式的过程。 在序列化期间,对象将其当前状态写入到临时或持久性存储区。以后,可以通过从存储区中读取或反序列化对象的状态,重新创建该对象。

def load_state_dict(self, state_dict: 'OrderedDict[str, Tensor]',strict: bool = True):
  • state_dict:保存 parameters 和 persistent buffers 的字典
  • strict:可选,bool型。state_dict 中的 key 是否和 model.state_dict() 返回的 key 一致。

2.4 状态字典state_dict

函数作用是“获取优化器当前状态信息字典”,在神经网络中模型上训练出来的模型参数,也就是权重和偏置值。在Pytorch中,定义网络模型是通过继承torch.nn.Module来实现的。其网络模型中包含可学习的参数(weights, bias, 和一些登记的缓存如batchnorm’s running_mean 等)。模型内部的可学习参数可通过两种方式进行调用:

  • 通过model.parameters()这个生成器来访问所有参数。
  • 通过model.state_dict()来为每一层和它的参数建立一个映射关系并存储在字典中,其键值由每个网络层和其对应的参数张量构成。
def state_dict(self, destination=None, prefix='', keep_vars=False):

除模型外,优化器对象(torch.optim)同样也有一个状态字典,包含的优化器状态信息以及使用的超参数。由于状态字典属于Python 字典,因此对 PyTorch 模型和优化器的保存、更新、替换、恢复等操作都比较便捷。

3 指定map_location加载模型

采用仅加载模型参数的方式,指定设备类型进行模型加载,代码如下:

model_path = '/opt/sample_model.pth'device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
map_location = torch.device(device)model.load_state_dict(torch.load(self.model_path, map_location=self.map_location))
http://www.hkea.cn/news/555332/

相关文章:

  • 杭州哪个网站建设最好做网站的网络公司
  • 制作一个网站步骤东莞网络营销销售
  • 专业的营销网站建设公司百度联盟注册
  • 机械类网站用什么做背景指数运算法则
  • 微信如何绑定网站加速游戏流畅的软件
  • 茂名整站优化百度问答首页
  • 手机网站搭建网络宣传方式
  • 2003网站建设网站seo哪家公司好
  • 成都学校网站制作2022年国际十大新闻
  • 工厂外贸网站建设台州网络推广
  • 酒店网站建设方案策划百度seo怎么做网站内容优化
  • 网站更改公司需要重新备案吗搜索网页内容
  • 现在做网站还用dw做模板了吗成人电脑速成培训班
  • 做app要不要建网站刚开的店铺怎么做推广
  • 做生存分析的网站有哪些专业的网站优化公司
  • 网站双倍浮动百度联盟app
  • 北京网站设计确保代码符合w3c广州网络营销的推广
  • 做网站实名认证有什么用百度移动端模拟点击排名
  • 知更鸟wordpress 怎样沈阳百度seo关键词优化排名
  • 携程网站模板互联网营销策略有哪些
  • 做网站内链什么意思上海排名优化seobwyseo
  • 四川做直销会员网站百度网盘帐号登录入口
  • 做百度竞价对网站有无要求网站推广排名服务
  • 建设工程合同包括成都网站改版优化
  • 深圳不加班的互联网公司整站seo优化
  • 中国做的很好的食品网站肇庆疫情最新消息
  • 做时时彩网站微信seo关键词有话要多少钱
  • 陇南市建设局网站商务软文写作
  • 做学术研究的网站营销方案怎么写?
  • 专业网站设计公司有哪些秒收录关键词代发