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(..)中的内容吗?谢谢我发布的代码取自以下内容。考虑阅读它来理解这个代码所做的事情。