tensflow模型转onnx实践

本文详细介绍了如何在Python环境中搭建TensorFlow1.14和Keras2.2.4的开发环境,包括安装步骤和版本管理。重点讲述了如何将TensorFlow和Keras模型转换为ONNX格式,以及在转换过程中遇到的问题及其解决方案。最后,通过精度测试对比了原模型与ONNX模型的性能差异。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、基础知识介绍

1、TensorFlow介绍

TensorFlow™是一个基于数据流编程(dataflow programming)的符号数学系统,被广泛应用于各类机器学习(machine learning)算法的编程实现,其前身是谷歌的神经网络算法库DistBelief [1]。Tensorflow拥有多层级结构,可部署于各类服务器、PC终端和网页并支持GPU和TPU高性能数值计算,被广泛应用于谷歌内部的产品开发和各领域的科学研究 [1-2]。TensorFlow由谷歌人工智能团队谷歌大脑(Google Brain)开发和维护,拥有包括TensorFlow Hub、TensorFlow Lite、TensorFlow Research Cloud在内的多个项目以及各类应用程序接口(Application Programming Interface, API)。自2015年11月9日起,TensorFlow依据阿帕奇授权协议(Apache 2.0 open source license)开放源代码 。

2、keras介绍

Keras是一个由Python编写的开源人工神经网络库,可以作为Tensorflow、Microsoft-CNTK和Theano的高阶应用程序接口,进行深度学习模型的设计、调试、评估、应用和可视化 。
Keras在代码结构上由面向对象方法编写,完全模块化并具有可扩展性,其运行机制和说明文档有将用户体验和使用难度纳入考虑,并试图简化复杂算法的实现难度 [1]。Keras支持现代人工智能领域的主流算法,包括前馈结构和递归结构的神经网络,也可以通过封装参与构建统计学习模型 。在硬件和开发环境方面,Keras支持多操作系统下的多GPU并行计算,可以根据后台设置转化为Tensorflow、Microsoft-CNTK等系统下的组件 。

3、onnx

ONNX是一种开放格式,专门用于表示机器学习模型。它定义了一套通用的运算符,这些运算符是构建机器学习和深度学习模型的基础单元,同时ONNX还定义了一种通用的文件格式。这些特性使得AI开发者能够跨多种框架、工具、运行时和编译器使用模型。

二、基础环境介绍

实际工作中,模型使用的版本和框架可能各不相同,在做模型转换或者模型迁移工作的过程中,一般先讲各个框架的模型格式转换为通用的中间格式,比如onnx,正如我们所做的,將 TensorFlow框架编写训练的模型转换为onnx格式。

1、框架版本

tensflow版本为1.14,keras版本为2.2.4

三、环境搭建

1、在 anconda当中新建一个虚拟环境,指定python版本为3.7

conda create -n py37_tf14 python=3.7

在这里插入图片描述
检查python和pip版本:

python
pip -V

在这里插入图片描述

2、安装依赖

1)安装tensflow和 keras

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple tensorflow==1.14.0
Requirement already satisfied: setuptools>=41.0.0 in d:\programs\anaconda3\envs\py37_tf14\lib\site-packages (from tensorboard<1.15.0,>=1.14.0->tensorflow==1.14.0) (65.6.3)
Collecting importlib-metadata>=4.4
  Downloading https://pypi.tuna.tsinghua.edu.cn/packages/ff/94/64287b38c7de4c90683630338cf28f129decbba0a44f0c6db35a873c73c4/importlib_metadata-6.7.0-py3-none-any.whl (22 kB)
Collecting MarkupSafe>=2.1.1
  Downloading https://pypi.tuna.tsinghua.edu.cn/packages/9b/c1/9f44da5ca74f95116c644892152ca6514ecdc34c8297a3f40d886147863d/MarkupSafe-2.1.3-cp37-cp37m-win_amd64.whl (17 kB)
Collecting typing-extensions>=3.6.4
  Downloading https://pypi.tuna.tsinghua.edu.cn/packages/ec/6b/63cc3df74987c36fe26157ee12e09e8f9db4de771e0f3404263117e75b95/typing_extensions-4.7.1-py3-none-any.whl (33 kB)
Collecting zipp>=0.5
  Downloading https://pypi.tuna.tsinghua.edu.cn/packages/5b
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

添财小哥

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值