h5模型文件转换成pb模型文件
  本文主要记录Keras训练得到的.h5模型文件转换成TensorFlow的.pb文件
#*-coding:utf-8-*
"""
将keras的.h5的模型文件,转换成TensorFlow的pb文件
"""
# ==========================================================
from keras.models import load_model
import tensorflow as tf
import os
from keras import backend
def h5_to_pb(h5_model, output_dir, model_name, out_prefix="output_", log_tensorboard=True):
    """.h5模型文件转换成pb模型文件
    Argument:
        h5_model: str
            .h5模型文件
        output_dir: str
            pb模型文件保存路径
        model_name: str
            pb模型文件名称
        out_prefix: str
            根据训练,需要修改
        log_tensorboard: bool
            是否生成日志文件
    Return:
        pb模型文件
    """
    if os.path.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 = backend.get_session()
    from tensorflow.python.framework import graph_util, graph_io
    # 写入pb模型文件
    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(os.path.join(output_dir, model_name), output_dir)
if __name__ == '__main__':
    #  .h模型文件路径参数
    input_path = 'satellite/train_dir/models/'
    weight_file = 'satellite_iv3_ft.h5'
    weight_file_path = os.path.join(input_path, weight_file)
    output_graph_name = weight_file[:-3] + '.pb'
    #  pb模型文件输出输出路径
    output_dir = os.path.join(os.getcwd(), "satellite/train_dir/models/")
    #  加载模型
    h5_model = load_model(weight_file_path)
    h5_to_pb(h5_model, output_dir=output_dir, model_name=output_graph_name)
    print('Finished')
h5模型文件转换成pb模型文件的更多相关文章
- Linux中将一个GBK编码的文件转换成UTF-8编码文件
		Linux中将一个GBK编码的文件转换成UTF-8编码文件 使用iconv 命令iconv -f GBK -t UTF-8 file1 -o file2 输出另一个文件,然后再覆盖源文件内容 
- 把TXT GB2312文件转换成TXT UTF8文件
		/// <summary> /// 把TXT GB2312文件转换成TXT UTF8文件 /// </summary> /// < ... 
- Python3.6安装protobuf模块+将proto文件转换成pb2.py文件
		Python对版本的对应即为苛刻,笔者第一次安装时遇到了很多坑,比如无法将proto文件转换成py文件,转换了之后文件无法使用,网上各种各样的解决办法都没有讲到重点.其实会出现各种各样的问题是由于版本 ... 
- C#:将.csv格式文件转换成.xlsx格式文件
		using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ... 
- 【转】java将excel文件转换成txt格式文件
		在实际应用中,我们难免会遇到解析excel文件入库事情,有时候为了方便,需要将excel文件转成txt格式文件.下面代码里面提供对xls.xlsx两种格式的excel文件解析,并写入到一个新的txt文 ... 
- .net amr格式文件转换成mp3格式文件的方法
		前言:winform端对于音频文件的格式多有限制,大多数不支持amr格式的文件的播放.但是,手机端传过来的音频文件大多数是amr格式的文件,所以,要想在winform客户端支持音频文件的播放,可以通过 ... 
- 在windows 下将  chm 格式的文件 转换成 html 的文件
		有时我们可能需要将 chm 格式的文件 转换成 html 格式的网页文件,这时,如果你使用的是 windows 操作系统,那就可以用 windows 操作系统自带的反编译工具来完成这项任务,具体步骤: ... 
- 将.lib库文件转换成.a库文件的工具
		分享如下两个链接: 微盘: http://vdisk.weibo.com/s/ztzPTJIC52mz2 百度云盘: http://pan.baidu.com/s/11gTOc 使用方法,解压文件mi ... 
- python3将docx转换成pdf,html文件,pdf转doc文件
		直接上代码 # -*- encoding:utf-8 -*- """ author:lgh 简单的doc转pdf,html,pdf转doc脚本 依赖库pdfminer3k ... 
随机推荐
- 谷歌postman插件的安装与使用
			下载地址:http://pan.baidu.com/s/1kTh1g4B 安装方法: 1.下载并解压 2.解压后.打开谷歌浏览器.选择很多其它工具→扩展程序,如图 3.勾选开发人员模式 4.选择载入正 ... 
- Unix和Linux历史文化
			1.显示工作目录pwd print working directory print name of current/working directory 2.显示自己终端名称tty pr ... 
- Java for LeetCode 092 Reverse Linked List II
			Reverse a linked list from position m to n. Do it in-place and in one-pass. For example: Given 1-> ... 
- Flask中的内置session
			Flask中的Session非常的奇怪,他会将你的SessionID存放在客户端的Cookie中,使用起来也非常的奇怪 1. Flask 中 session 是需要 secret_key 的 from ... 
- js正則函數 match、exec、test、search、replace、split 使用介紹集合
			match 方法 使用正則表達式模式對字元串執行查找,並將包含查找的結果作為數組返回. stringObj.match(rgExp) 參數 stringObj 必選項.對其進行查找的 String 對 ... 
- CMake最好的学习资料
			本文为转载,阅读不友好,请先查看原文:https://blog.gmem.cc/cmake-study-note 收下为原文内容================> 基础知识 CMake简介 CM ... 
- 应用程序无法启动(0*c000007b)
			2个插件就解决 一个是DX缺失工具检查那个 一个是运行库缺失检查 
- Zookeeper原理与Curator使用
			近期打算实现一个基于Zookeeper的分布式的集群状态一致性控制, 对Zookeeper的原理不太了解, 正好学习一下, 网上找到了几篇文章, 先贴在这边, 等我熟读官方文档后, 再来补充自己的见解 ... 
- 农业公司flash动画模板
			农业公司flash动画素材下载模板是一款绿色水果蔬菜种植企业的flash动画模板. 下载:http://www.huiyi8.com/sc/10576.html 
- 练习E-R图书管理数据库
