背景:目前keras框架使用简单,很容易上手,深得广大算法工程师的喜爱,但是当部署到客户端时,可能会出现各种各样的bug,甚至不支持使用keras,本文来解决的是将keras的h5模型转换为客户端常用的tensorflow的pb模型并使用tensorflow加载pb模型。

h5_to_pb.py

from keras.models import load_model

import tensorflow as tf

import os

import os.path as osp

from keras import backend as K

#路径参数

input_path = 'input path'

weight_file = 'weight.h5'

weight_file_path = osp.join(input_path,weight_file)

output_graph_name = weight_file[:-3] + '.pb'

#转换函数

def h5_to_pb(h5_model,output_dir,model_name,out_prefix = "output_",log_tensorboard = True):

if osp.exists(output_dir) == False:

os.mkdir(output_dir)

out_nodes = []

for i in range(len(h5_model.outputs)):

out_nodes.append(out_prefix + str(i + 1))

tf.identity(h5_model.output[i],out_prefix + str(i + 1))

sess = K.get_session()

from tensorflow.python.framework import graph_util,graph_io

init_graph = sess.graph.as_graph_def()

main_graph = graph_util.convert_variables_to_constants(sess,init_graph,out_nodes)

graph_io.write_graph(main_graph,output_dir,name = model_name,as_text = False)

if log_tensorboard:

from tensorflow.python.tools import import_pb_to_tensorboard

import_pb_to_tensorboard.import_to_tensorboard(osp.join(output_dir,model_name),output_dir)

#输出路径

output_dir = osp.join(os.getcwd(),"trans_model")

#加载模型

h5_model = load_model(weight_file_path)

h5_to_pb(h5_model,output_dir = output_dir,model_name = output_graph_name)

print('model saved')

将转换成的pb模型进行加载

load_pb.py

import tensorflow as tf

from tensorflow.python.platform import gfile

def load_pb(pb_file_path):

sess = tf.Session()

with gfile.FastGFile(pb_file_path, 'rb') as f:

graph_def = tf.GraphDef()

graph_def.ParseFromString(f.read())

sess.graph.as_default()

tf.import_graph_def(graph_def, name='')

print(sess.run('b:0'))

#输入

input_x = sess.graph.get_tensor_by_name('x:0')

input_y = sess.graph.get_tensor_by_name('y:0')

#输出

op = sess.graph.get_tensor_by_name('op_to_store:0')

#预测结果

ret = sess.run(op, {input_x: 3, input_y: 4})

print(ret)

as转html5工具,将keras的h5模型转换为tensorflow的pb模型相关推荐

  1. keras模型转换为tensorflow的pb模型结构

    官方文档介绍如下, 此时博主电脑环境配置为:tensorflow-gpu 2.4.0.python3.6.cuda11.0.cudnn8.0,详细信息可见博主这篇博客 应用 Applications ...

  2. keras模型转TensorFlow模型-tensorrt UFF格式

    最近在学习tensorrt,需要将keras训练好保存的.hdf5格式模型转为tensorflow的.pb模型,然后转为tensorrt支持的uff格式. 做个记录. 代码如下: 转为tensorfl ...

  3. 深度学习之格式转换笔记(三):keras(.hdf5)模型转TensorFlow(.pb) 转TensorRT(.uff)格式

    环境: tensorflow1.15,cuda10.0,cudnn7.6.4 将keras训练好保存的.hdf5格式模型转为tensorflow的.pb模型,然后转为tensorrt支持的uff格式. ...

  4. tensorflow/serving部署keras的h5模型服务

    当我们使用keras训练好模型之后,下一步就是部署服务了,采用flask直接加载keras的h5模型,服务的并发性能会很低.如果为了追求高并发性能,就可以采用Nginx+gunicorn+gevent ...

  5. 【tfcoreml】tensorflow向CoreML模型的转换工具封装

    安装tf向apple coreml模型转换包tfcoreml 基于苹果自己的转换工具coremltools进行封装 tfcoreml 为了将训练的模型转换到apple中使用,需要将模型转换为ios支持 ...

  6. h5模型转化为pb模型,代码及排坑

    我是在实际工程中要用到tensorflow训练的pb模型,但是训练的代码是用keras写的,所以生成keras特定的h5模型,所以用到了h5_to_pb.py函数. 附上h5_to_pb.py(pyt ...

  7. 在NVIDIA Jetson Xavier NX上把yolov4-deepsort的模型pb模型使用tensorflow-onnx和onnx-tensorrt工具最终转换为tensorrt模型

    文章目录: 1 安装tensorflow-onnx环境和把tensorflow的pb模型转换为onnx模型 1.1 安装tensorflow2onnx环境 1.2 把tensorflow的pb模型转换 ...

  8. 选择ppt转html5工具需要考虑的一些问题

    很多在线教育.在线会议应用需要在App中直接播放ppt.这就需要预先将ppt文件转换成带动画效果的html5格式,然后通过App中内置的浏览器来播放html5. 现在市面上的PPT转h5工具乍看起来有 ...

  9. 将keras的h5模型转化为onnx

    将keras的h5模型转化为onnx 先安装 pip install keras2onnx import keras import keras2onnx import onnx from keras. ...

最新文章

  1. LeetCode Binary Search Tree Iterator( 二叉树迭代器)
  2. 作业二/Git的安装以及使用
  3. Linux sed命令使用
  4. 迁移和升级windows 2003 R2到windows 2008 SP2
  5. ×××梦 最近要开始研究Excel 2010
  6. MySQL行转列与列转行
  7. 智慧发电厂+智能发电厂web端平台管理系统+Axure高保真智慧电厂系统+能耗管理+告警管理+生产监控+安防设备管理+运维设备管理+监控面板+系统管理+智慧电厂+电厂系统+axure源文件+rp原型
  8. 反应特别慢_孩子反应总是很迟钝?家长多注意一点孩子的兴趣培养
  9. 二叉排序树的中序遍历规律_王道数据结构|第四章 树与二叉树 04 二叉树的遍历...
  10. MySQL数据库知识大全
  11. 小程序跳转:h5避免中间页直接打开微信小程序
  12. 曾经沧海难为水,除却巫山不是云。
  13. WINDOWS10 win+L 锁屏快捷键失效
  14. 模仿人类逻辑,首个BERT模型AI通过初二科学考试!研究人员:完成了老板遗愿...
  15. 计算机word的常用功能技巧,word一些实用小技巧
  16. 【Redis | 黑马点评 + 思维导图】分布式锁
  17. CF507C Guess Your Way Out!
  18. SpringMVC 2.HelloWorld
  19. 昨天去做地推,在路上看见了这么繁茂的仙人掌
  20. 项目教程 | Pycharm+Pyqt5+Eric6实现逻辑与界面分离(实例教学)

热门文章

  1. php程序xml有必要学习吗,对初学者非常有用的PHP技巧
  2. 程控交换机管理与维护注意事项详解
  3. lora模块在牛联网和智慧农业中的应用案列
  4. cad怎么将图层后置_CAD中如何将某1个图层置于其他图层之上.doc
  5. sqlserver安装显示句柄无效_Sqlserver 2016 R Service环境安装的各种错误(坑)解决办法...
  6. 计算机类和鼠标类是什么关系,电脑自己关机和鼠标键盘有关系吗
  7. 怎么把java程序放进php_如何在php脚本中执行Java程序?
  8. Java面向对象(21)--内部类
  9. (3.4)HarmonyOS鸿蒙滑动事件三个动作
  10. 鸿蒙10 5G手机,继鸿蒙后麒麟V10问世 5G时代国产操作系统将起飞