• .h5模型转.pb模型(tensorflow2)


    转自https://www.cnblogs.com/buctyk/archive/2004/01/13/12932663.html

    import tensorflow.compat.v1 as tf1
     
    tf1.reset_default_graph()
    tf1.keras.backend.set_learning_phase(0)  # 调用模型前一定要执行该命令
    tf1.disable_v2_behavior()  # 禁止tensorflow2.0的行为
    
    hdf5_pb_model = tf1.keras.models.load_model('mnist_test_cnn.h5')
    def freeze_session(session, keep_var_names=None, output_names=None, clear_devices=True):
        graph = session.graph
        with graph.as_default():
            #         freeze_var_names = list(set(v.op.name for v in tf1.global_variables()).difference(keep_var_names or []))
            output_names = output_names or []
            #         output_names += [v.op.name for v in tf1.global_variables()]
            print("output_names", output_names)
            input_graph_def = graph.as_graph_def()
            #         for node in input_graph_def.node:
            #             print('node:', node.name)
            print("len node1", len(input_graph_def.node))
            if clear_devices:
                for node in input_graph_def.node:
                    node.device = ""
            frozen_graph = tf1.graph_util.convert_variables_to_constants(session, input_graph_def,
                                                                         output_names)
     
            outgraph = tf1.graph_util.remove_training_nodes(frozen_graph)  # 云掉与推理无关的内容
            print("##################################################################")
            for node in outgraph.node:
                print('node:', node.name)
            print("len node1", len(outgraph.node))
            return outgraph
    
    output_folder2 = 'keras_model'
     
    frozen_graph = freeze_session(tf1.compat.v1.keras.backend.get_session(),
                                  output_names=[out.op.name for out in hdf5_pb_model.outputs])
    tf1.train.write_graph(frozen_graph, output_folder2, "classify.pb", as_text=False)

    结果如图

     

     

    无情的摸鱼机器
  • 相关阅读:
    让PHP更快的提供文件下载
    thinkphp5接入QQ第三方登录
    tp5隐藏index.php
    thinkphp5 表达式
    后台无限级分类添加的实现方式
    PHP系统左侧菜单栏的管理与实现
    mongoDB基本命令
    Java基础-反射和注解
    Java基础-多线程
    Java基础-网络编程
  • 原文地址:https://www.cnblogs.com/wangtianning1223/p/14335551.html
Copyright © 2020-2023  润新知