我有一个使用Tensorflow后端的名为model
的Keras模型,我试图将其保存为ML引擎友好格式。谷歌搜索后,这是我的尝试:
from tensorflow import saved_model
import tensorflow.keras.backend as K
K.clear_session()
sess = tf.Session()
K.set_session(sess)
# build a copy but without the learning nodes
K.set_learning_phase(0) # disables creation of dropout
model_builder = saved_model.builder.SavedModelBuilder("exported_model")
inputs = {
'input': saved_model.utils.build_tensor_info(model.input)
}
outputs = {
'output': saved_model.utils.build_tensor_info(model.output)
}
signature_def = saved_model.signature_def_utils.build_signature_def(
inputs=inputs,
outputs=outputs,
method_name=saved_model.signature_constants.PREDICT_METHOD_NAME
)
model_builder.add_meta_graph_and_variables(
K.get_session(),
tags=[saved_model.tag_constants.SERVING],
signature_def_map={saved_model.signature_constants.DEFAULT_SERVING_SIGNATURE_DEF_KEY: signature_def
})
model_builder.save()
输出为saved_model.pb
,但是当model.h5
文件超过100MB时,输出小于1 MB。所以我怀疑这没有节省我模型的权重吗?
任何关于我做错事情的想法吗?
谢谢!