Python tensorflow 2.0中的保存和加载模型

Python tensorflow 2.0中的保存和加载模型,python,tensorflow,machine-learning,Python,Tensorflow,Machine Learning,我用下面的代码在tensorflow 2.x中保存了一个来自Premad estimator的模型 import os serving_input_fn = tf.estimator.export.build_parsing_serving_input_receiver_fn( tf.feature_column.make_parse_example_spec(my_feature_columns)) estimator_base_path = os.path.join( 'from_estim

我用下面的代码在tensorflow 2.x中保存了一个来自Premad estimator的模型

import os
serving_input_fn = tf.estimator.export.build_parsing_serving_input_receiver_fn(
tf.feature_column.make_parse_example_spec(my_feature_columns))
estimator_base_path = os.path.join( 'from_estimator')
estimator_path = classifier.export_saved_model(estimator_base_path, serving_input_fn)
此代码创建一个包含.pb文件的文件夹 我需要在将来重用这个模型,我尝试使用这个函数加载WO

saved_model_obj = tf.compat.v2.saved_model.load(export_dir="/model_dir/")
但是,当我尝试使用加载的模型进行预测时,它会引发这个错误

predictions = saved_model_obj.predict(
input_fn=lambda: input_fn(predict_x))


---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
<ipython-input-23-a9902ff8210c> in <module>
----> 1 predictions = saved_model_obj.predict(
      2     input_fn=lambda: input_fn(predict_x))

AttributeError: 'AutoTrackable' object has no attribute 'predict'
predicts=saved\u model\u obj.predict(
input_fn=lambda:input_fn(predict_x))
---------------------------------------------------------------------------
AttributeError回溯(最近一次呼叫上次)
在里面
---->1预测=保存的模型对象预测(
2输入值=λ:输入值(预测值)
AttributeError:“自动跟踪”对象没有“预测”属性

如何加载.pb文件并进行预测,就像我从未保存并加载过一样?

当我保存模型供以后使用时,我通常会这样做:

假设您的模型是
模型

model.save('my_model.h5') 
这将以hdf5格式保存modoel

然后,当我不得不再次使用它来预测时,我可以:

new_model = tf.keras.models.load_model('my_model.h5')


然后你可以
new\u model.predict()

我正在使用一个预先制作的估计器,特别是DNNClassifier。它不是keras模型只要您可以将其加载到模型对象中并对其进行训练,您就可以将其保存在hdf5文件中当使用函数tf.compat.v2.saved_model.load加载它不是模型对象时,它是一个可自动跟踪的objectCheck解决方案: