关键代码,这里的模型为tf.keras 模型:
from tensorflow.python.framework.convert_to_constants import convert_variables_to_constants_v2
full_model = tf.function(lambda x: model(x))
full_model = full_model.get_concrete_function(
tf.TensorSpec(model.inputs[0].shape, model.inputs[0].dtype))
# Get frozen ConcreteFunction
frozen_func = convert_variables_to_constants_v2(full_model)
frozen_func.graph.as_graph_def()
tf.io.write_graph(graph_or_graph_def=frozen_func.graph,
logdir="",
name="frozen_graph.pb",
as_text=False)
PS:建议在tensorflow1.14版本以上进行转换。
完整代码:
# Copyright 2020 chenli Authors. All Rights Reserved.
import tensorflow as tf
import os
from mobilenetv3_factory import build_mobilenetv3
def mobilenetv3_creat(num_classes=2, img_size=128):
""