Python 如何加载已保存的Tensorflow模型并对其进行评估

Python 如何加载已保存的Tensorflow模型并对其进行评估,python,tensorflow,machine-learning,tensorflow2.0,Python,Tensorflow,Machine Learning,Tensorflow2.0,这就是我保存模型的方式 #第一个创建的服务输入函数 服务\u输入\u fn=tf.estimator.export.build\u解析\u服务\u输入\u接收器\u fn(tf.feature\u column.make\u解析\u示例\u spec(my\u feature\u columns)) #将估计器另存为tf模型 分类器。导出保存的模型(“位置”,服务于输入) 这将生成一个文件夹,其中包含“saved_model.pb”文件和一个文件夹“variable” 问题是我试图加载并运行

这就是我保存模型的方式


#第一个创建的服务输入函数
服务\u输入\u fn=tf.estimator.export.build\u解析\u服务\u输入\u接收器\u fn(tf.feature\u column.make\u解析\u示例\u spec(my\u feature\u columns))
#将估计器另存为tf模型
分类器。导出保存的模型(“位置”,服务于输入)
这将生成一个文件夹,其中包含“saved_model.pb”文件和一个文件夹“variable”

问题是我试图加载并运行模型


导入的\u model=tf.saved\u model.load(“/folderLocation”)
导入的\u模型\u res=导入的\u模型。评估(输入\u fn=lambda:input\u fn(x\u测试,y\u测试,训练=假))
但我得到一个错误,它说

AttributeError:“自动跟踪”对象没有属性“评估”


非常感谢您的帮助。谢谢

您首先需要将模型转换为keras

请尝试以下操作:

loaded = tf.saved_model.load(path)

class LayerFromSavedModel(tf.keras.layers.Layer):
    def __init__(self):
        super(LayerFromSavedModel, self).__init__()
        self.vars = loaded.variables
    def call(self, inputs):
        return loaded.signatures['serving_default'](inputs)

input = tf.keras.Input(...)
model = tf.keras.Model(input, LayerFromSavedModel()(input))
model.save('saved_model')

您好,谢谢您的回复,您能澄清一下tf.eras.Input(..)中的内容吗?谢谢我发布的代码取自以下内容。考虑阅读它来理解这个代码所做的事情。