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

北京建设工程建设交易信息网站网站空间域名一次性收费还是一年一算

北京建设工程建设交易信息网站,网站空间域名一次性收费还是一年一算,国外做meta分析的网站,怎么创建网站 优帮云文章目录1 背景介绍2 实验环境3 tf2onnx工具介绍4 代码实操4.1 TensorFlow2与ONNX模型导出4.2 ONNX正确性验证4.3 TensorFlow2与ONNX的一致性检查4.4 多输入的情况4.5 设定输入/输出节点5 ONNX模型可视化6 ir_version和opset_version修改7 ONNX输入输出维度修改8 致谢原文来自于… 文章目录1 背景介绍2 实验环境3 tf2onnx工具介绍4 代码实操4.1 TensorFlow2与ONNX模型导出4.2 ONNX正确性验证4.3 TensorFlow2与ONNX的一致性检查4.4 多输入的情况4.5 设定输入/输出节点5 ONNX模型可视化6 ir_version和opset_version修改7 ONNX输入输出维度修改8 致谢原文来自于地平线开发者社区未来会持续发布深度学习、板端部署的相关优质文章与视频如果文章对您有帮助麻烦给点个赞如果您有兴趣一起学习欢迎点个关注寻找永不遗憾(CSDN用户名) 1 背景介绍 使用深度学习开源框架Pytorch训练完网络模型后在部署之前通常需要进行格式转换地平线工具链模型转换目前支持Caffe1.0和ONNX(opset_version10/11 且 ir_version≤7)两种。ONNX(Open Neural Network Exchange)格式是一种常用的开源神经网络格式被较多推理引擎支持例如Pytorch、PaddlePaddle、TensorFlow等。本文将详细介绍如何将TensorFlow2得到的模型导出为ONNX格式。 2 实验环境 本教程的实验环境如下 Python库Versiontensorflow-cpu2.11.0tensorflow-intel2.11.0tf2onnx1.13.0protobuf3.20.2onnx1.13.0onnxruntime1.14.0 3 tf2onnx工具介绍 tf2onnx可以通过命令行的方式将TensorFlow/Keras的模型转换为ONNX该工具的主要配置参数如下 python -m tf2onnx.convert--saved-model #以save-model方式保存的tf模型文件夹--output #转换为ONNX格式的完整模型名称--opset #默认为13请手动配置10或11--inputs #可选用于指定导出的首节点--outputs #可选用于指定导出的尾节点tf2onnx的更多详细介绍可以参考 https://github.com/onnx/tensorflow-onnx 4 代码实操 4.1 TensorFlow2与ONNX模型导出 以下代码展示了如何搭建一个简单分类模型以TensorFlow2的save-model方式保存并转换为ONNX格式。 import tensorflow as tf import os import onnxdef MyNet():input1 tf.keras.layers.Input(shape(7, 7, 3))x tf.keras.layers.Conv2D(16, (3, 3),activationrelu,paddingsame,nameconv1)(input1)x tf.keras.layers.Conv2D(16, (3, 3),activationrelu,paddingsame,nameconv2)(x)x tf.keras.layers.Flatten(nameflatten)(x)x tf.keras.layers.Dense(100, activationrelu, namefc1)(x)output tf.keras.layers.Dense(2, activationsoftmax, namepredictions)(x)input_1 input1model tf.keras.models.Model(inputs[input_1], outputsoutput)return modelmodel MyNet()#需要先使用model.save方法保存模型 model.save(model) #调用tf2onnx将上一步保存的模型导出为ONNX os.system(python -m tf2onnx.convert --saved-model model --output model.onnx --opset 11)4.2 ONNX正确性验证 可以用以下代码验证ONNX模型的正确性会检查模型的版本图的结构节点及输入输出。若输出为 Check: None 则表示无报错信息模型导出正确。 import onnxonnx_model onnx.load(./model.onnx) check onnx.checker.check_model(onnx_model) print(Check: , check)4.3 TensorFlow2与ONNX的一致性检查 可以使用以下代码检查导出的ONNX模型和原始的PaddlePaddle模型是否有相同的计算结果。 import tensorflow as tf import onnxruntime import numpy as npinput1 np.random.random((1, 7, 7, 3)).astype(float32)ort_sess onnxruntime.InferenceSession(./model.onnx) ort_inputs {ort_sess.get_inputs()[0].name: input1} ort_outs ort_sess.run(None, ort_inputs)tf_model tf.saved_model.load(export_dirmodel) tf_outs tf_model(inputsinput1)print(ort_outs[0]) print(tf_outs.numpy()) np.testing.assert_allclose(tf_outs.numpy(), ort_outs[0], rtol1e-03, atol1e-05) print(onnx model check finsh.)4.4 多输入的情况 若您的模型存在多输入则可参考下方代码以TensorFlow2的save-model方式保存并转换为ONNX格式。 import tensorflow as tf import osdef MyNet():input1 tf.keras.layers.Input(shape(7, 7, 3))input2 tf.keras.layers.Input(shape(7, 7, 3))x tf.keras.layers.Conv2D(16, (3, 3),activationrelu,paddingsame,nameconv1)(input1)y tf.keras.layers.Conv2D(16, (3, 3),activationrelu,paddingsame,nameconv2)(input2)z tf.keras.layers.Concatenate(axis-1)([x, y])z tf.keras.layers.Flatten(nameflatten)(z)z tf.keras.layers.Dense(100, activationrelu, namefc1)(z)output tf.keras.layers.Dense(2, activationsoftmax, namepredictions)(z)input_1 input1input_2 input2model tf.keras.models.Model(inputs[input_1,input_2], outputsoutput)return modelmodel MyNet()model.save(model) os.system(python -m tf2onnx.convert --saved-model model --output model.onnx --opset 11)4.5 设定输入/输出节点 有时考虑到部署难度我们不希望TensorFlow网络结构的前后处理部分也导入进ONNX模型。此时可以使用tf2onnx工具的inputs和outputs参数指定导出的首尾节点这样首节点之前和尾节点之后的部分都不会导入进ONNX模型。 5 ONNX模型可视化 导出成ONNX模型后可以使用开源可视化工具Netron来查看网络结构及相关配置信息。Netron的使用方式主要分为两种一种是使用在线网页版 https://netron.app/ 另一种是下载安装程序 https://github.com/lutzroeder/netron 。此教程中模型的可视化效果为 6 ir_version和opset_version修改 地平线工具链支持的ONNX模型需要满足 opset_version10/11 且 ir_version≤7当拿到的ONNX模型不满足这两个要求时可以修改代码重新导出或者尝试编写脚本直接修改ONNX模型的对应属性第二种方式的示例代码如下 import onnxmodel onnx.load(./model.onnx) model.ir_version 6 model.opset_import[0].version 11 onnx.save_model(model, ./model_version.onnx)注意 高版本向低版本切换时可能会出现问题这里只是一种可尝试的解决方案。 7 ONNX输入输出维度修改 当发现使用tf2onnx工具保存的ONNX模型的输入输出节点出现异常值时比如以下情况 可以使用如下代码进行修改 import onnxonnx_model onnx.load(./model.onnx) onnx_model.graph.input[0].type.tensor_type.shape.dim[0].dim_value 1 onnx_model.graph.output[0].type.tensor_type.shape.dim[0].dim_value 1 onnx.save(onnx_model, ./model_dim.onnx)打开保存的ONNX模型文件可以看到输入输出节点的维度已经正常 至此该ONNX模型已满足地平线工具链的转换条件。 8 致谢 原文来自于地平线开发者社区未来会持续发布深度学习、板端部署的相关优质文章与视频如果文章对您有帮助麻烦给点个赞如果您有兴趣一起学习欢迎点个关注寻找永不遗憾(CSDN用户名)
http://www.dnsts.com.cn/news/179996.html

相关文章:

  • 建设视频网站费用吗临沂企业建站程序
  • 如何黑掉jsp做的网站罗湖小学网站建设
  • 做直播教程的网站有哪些做网站带后台多少钱
  • 怎么用ps做网站框架本钢建设公司官网
  • 企业网站建设与管理试题wordpress+模板+国外
  • 建歌网站多少钱seo tdk
  • wordpress博客站搭建app开发公司启动资金有哪些
  • 有了网站源代码山东网站建设服务商
  • 社交网站模板下载写网站软件
  • 有什么做海报网站网页模板免费下载源代码
  • 网站建设属于哪种公司看优秀摄影做品的网站
  • 网站模板的功能佛山网站建设改版
  • 外网图片素材网站dw做网站
  • 查看公司信息的网站莱芜职业技术学院暗号
  • ajax 网站模板辽宁天一建设有限责任公司网站
  • 中国铁道工程建设协会查证网站上海人才网站首页
  • 安徽公司网站建设建站软件怎么免费升级
  • 东莞网站制作方案定制青岛开发区网站建设哪家好
  • 百度认证官方网站西安seo外包机构
  • 哪些软件属于网页制作工具企业网站改造优化
  • 正在建设的网站可以随时进入吗米拓建站下载
  • 企业管理定制软件莱阳seo排名
  • 用腾讯云怎么建设网站wordpress 批量删除
  • 不用服务器怎么做网站免费广告发布平台app
  • 什么是规划网站久久建筑网解析
  • 上海网站建设框架图免费的会计做账系统
  • 沧州市网站建设价格上海传媒公司总裁是谁
  • 网站开发有名的公司ps在线网站
  • 网站商城建设需求表织梦免费购物网站
  • 互联网网站模块wordpress需要多少内存