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

源码网站python免费关键字搜索引擎

源码网站python免费,关键字搜索引擎,打开备份的wordpress,旅游信息网站开发背景Open Neural Network Exchange(ONNX,开放神经网络交换)格式,是一个用于表示深度学习模型的标准,可使模型在不同框架之间进行转移。 一、pytorch模型保存/加载 有两种方式可用于保存/加载pytorch模型 1)文件…

Open Neural Network Exchange(ONNX,开放神经网络交换)格式,是一个用于表示深度学习模型的标准,可使模型在不同框架之间进行转移。

一、pytorch模型保存/加载
有两种方式可用于保存/加载pytorch模型 1)文件中保存模型结构和权重参数 2)文件只保留模型权重.

1、文件中保存模型结构和权重参数
模型保存与调用方式一(只保存权重):

保存:

torch.save(model.state_dict(), mymodel.pth)#只保存模型权重参数,不保存模型结构

调用:

model = My_model(*args, **kwargs)  #这里需要重新创建模型,My_model
model.load_state_dict(torch.load(mymodel.pth))#这里根据模型结构,导入存储的模型参数
model.eval()

模型保存与调用方式二(保存完整模型):

保存:

torch.save(model, mymodel.pth)#保存整个model的状态

调用:

model=torch.load(mymodel.pth)#这里已经不需要重构模型结构了,直接load就可以
model.eval()

.pt表示pytorch的模型,.onnx表示onnx的模型,后缀名为.pt, .pth, .pkl的pytorch模型文件之间其实没有任何区别

二、pytorch模型转ONNX模型
1、文件中保存模型结构和权重参数

import torch
torch_model = torch.load("/home/pytorch/save.pth") # pytorch模型加载#set the model to inference mode
torch_model.eval()x = torch.randn(1,3,320,640)        # 生成张量(模型输入格式)
export_onnx_file = "/home/pytorch/test.onnx"   # 目的ONNX文件名// 导出export:pt->onnx
torch.onnx.export(torch_model,                    # pytorch模型x,                            # 生成张量(模型输入格式)export_onnx_file,            # 目的ONNX文件名do_constant_folding=True,    # 是否执行常量折叠优化input_names=["input"],        # 输入名(可略)output_names=["output"],    # 输出名(可略)dynamic_axes={"input":{0:"batch_size"},        # 批处理变量(可略)"output":{0:"batch_size"}}) 

注:dynamic_axes字段用于批处理.若不想支持批处理或固定批处理大小,移除dynamic_axes字段即可.

2、文件中只保留模型权重

import torch
torch_model = selfmodel()                      # 由研究员提供python.py文件#set the model to inference mode
torch_model.eval()x = torch.randn(1,3,320,640)        # 生成张量(模型输入格式)
export_onnx_file = "/home/pytorch/test.onnx"   # 目的ONNX文件名// 导出export:pt->onnx
torch.onnx.export(torch_model,                    # pytorch模型x,                            # 生成张量(模型输入格式)export_onnx_file,            # 目的ONNX文件名do_constant_folding=True,    # 是否执行常量折叠优化input_names=["input"],        # 输入名(可略)output_names=["output"],    # 输出名(可略)dynamic_axes={"input":{0:"batch_size"},        # 批处理变量(可略)"output":{0:"batch_size"}}) 

3、onnx文件操作

3.1 安装onnx,onnxruntime:

pip install onnx
pip install onnxruntime(只能用cpu)
pip install onnxruntime-gpu(gpu和cpu都能用)

首先要强调的是,有两个版本的onnxruntime,一个叫onnxruntime,只能使用cpu推理,另一个叫onnxruntime-gpu,既可以使用gpu,也可以使用cpu。
如果自己安装的是onnxruntime,需要卸载后安装gpu版本。

 确认一下是否可以使用gpu
注意:
```python
print(onnxruntime.get_device())
```
上面的代码给出的输出是'GPU'时,并不代表就成功了。

而要用下面的代码来验证:
```python
ort_session = onnxruntime.InferenceSession("path/model/model_name.onnx",
providers=['CUDAExecutionProvider'])
print(ort_session.get_providers())
```
当输出是:['CUDAExecutionProvider', 'CPUExecutionProvider']才表示成功了。

版本查询:NVIDIA - CUDA | onnxruntime

安装固定版本的onnxruntime:

pip install onnxruntime-gpu==1.9.0

卸载pip uninstall


3.2 加载onnx文件

# "加载load"
model=onnx.load('net.onnx')

检查模型格式是否完整及正确

onnx.checker.check_model(model)

3.3 打印onnx模型文件信息

session=onnxruntime.InferenceSession('net.onnx')
inp=session.get_inputs()[0]#conv1=session.get_inputs()['conv1']
#out1=session.get_outputs()[1]
out=session.get_provider_options()
#print(inp,conv1,out1)
print(inp)
#print(out)
"打印图信息:字符串信息"
graph=onnx.helper.printable_graph(model.graph)
print(type(graph))

3.4 获取onnx模型输入输出层

input=model.graph.input
output = model.graph.output
"""输入输出层"""
print(input,output)

3.5 推理过程

import onnx
import onnxruntime
import torchinputs=torch.randn(1,3,640,320)
#上述inputs仅用于测试使用,用于图片推理,应该换成自己的图片,如:
#img_path='1.jpg'#图片尺寸与onnx模型的处理尺寸保持一致
#img=cv2.imread(img_path)
#inputs=preprocess_imgae(img)#标准化等预处理操作,与源项目代码保持一致即可
#print('inputs.size():',inputs.size())model=onnx.load('/home/pytorch_DL/test_320_640.onnx')
onnx.checker.check_model(model)
session =onnxruntime.InferenceSession('/home/pytorch_DL/test_320_640.onnx',
providers['CUDAExecutionProvider','CPUExecutionProvider'])
print('session.get_providers():',session.get_providers())
input_name = session.get_inputs()
output_name=session.get_outputs()[0].name
res=session.run([output_name],{input_name[0].name:inputs.numpy()})

参考:Pytorch与Onnx模型的保存、转换与操作_onnx转pytorch_Yuezero_的博客-CSDN博客

pytorch 模型的保存与加载方法以及使用onnx模型部署推理 | 码农家园

onnxruntime使用gpu推理 - 知乎

http://www.yayakq.cn/news/726513/

相关文章:

  • 创免费网站爱情网站设计
  • 咸宁市网站建设最近的新闻热点事件
  • 国家城乡建设部网站首页深入网站开发和运维
  • 网站建设费无形资产深圳市建设局网站张局
  • 做网站常见的语言上海网站建设百度推广公司哪家好
  • 网站后台不能上传地区汽车修理网站建设
  • 江门做网站公司开网络公司网络科技公司名字起名大全
  • 深圳网站建设公司968淘宝美工培训班
  • 网站美化怎么做乐潍清网站额建设
  • 电脑做服务器搭建网站wordpress 无法安装插件
  • 手机怎样制作个人网站公司名后缀的邮箱
  • 辽宁省建设厅网站更新成都网站制作培训
  • 市场营销推广方案廊坊seo外包服务
  • 南昌网站建设方案详细版电商直播培训
  • 物流网站建设目标建筑网站建设赏析
  • 昆明婚恋网站价格wordpress 获取用户信息
  • 离线推广网站规划书网站风格变化
  • 做企业网站推广多少钱wordpress 多域名插件
  • 网站建设汇报ppt肇庆网站开发哪家专业
  • 免费外贸自建站网站建设人员工作要求
  • 微信开发 微网站开发的详细流程wordpress如何安装百度地图
  • 池州网站建设jidela阿里云怎样做商城式网站
  • 医院网站可信认证必须做吗猪八戒网站是做啥的
  • 权威的建筑工程网站福州一站式品牌推广运营公司
  • 沈阳高端网站制作公司产品宣传画册设计
  • 369网站建设中心志愿海南网站
  • 国内企业网站模板wordpress百度网站地图
  • 海尔网站推广方法律师做网站
  • 河源东莞网站建设ps做网站导航条高度
  • 正规网站建设推荐东莞保安公司有多少家