питон
import tensorflow as tf from keras import backend as K # This line must be executed before loading Keras model. K.set_learning_phase(0) from tensorflow.python.framework.graph_util import convert_variables_to_constants from keras.models import load_model model = tf.keras.models.load_model(‘./keras_model.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 tf.global_variables()).difference(keep_var_names or [])) output_names = output_names or [] output_names += [v.op.name for v in tf.global_variables()] # Graph -> GraphDef ProtoBuf input_graph_def = graph.as_graph_def() if clear_devices: for node in input_graph_def.node: node.device = “” frozen_graph = convert_variables_to_constants(session, input_graph_def, output_names, freeze_var_names) return frozen_graph frozen_graph = freeze_session(K.get_session(), output_names=[out.op.name for out in model.outputs]) tf.train.write_graph(frozen_graph, “model”, “tf_model.pb”, as_text=False)