我正在构建一个针对数据序列进行机器学习的 ANN 模型。当我调用模型来验证测试数据时,出现错误
model = Sequential()
model.add(Dense(8,activation='tanh',input_dim = 10))
model.add(Dense(6,activation='tanh'))
model.add(Dense(4,activation='softmax'))
model.summary()
from tensorflow.keras.models import Sequential, save_model, load_model
filepath = './input/saved_model'
save_model(model, filepath)
test = pd.read_csv('test.csv')
enter code here
当我处理下面的代码时,出现错误消息
predictions = model.predict(test)
AttributeError Traceback (most recent call last)
<ipython-input-141-82c4f2e9fa53> in <module>()
----> 1 predictions = model.predict(test)
AttributeError: '_UserObject' object has no attribute 'predict'
您已使用保存模型.save_model
的方法tensorflow.keras.models
。默认情况下将其保存在SavedModel
张量流的格式。
当您使用加载回模型时tensorflow.keras.models.load_model
方法,您可以使用predict
模型的方法。
model = tf.keras.models.load_model(<saved_model_folder>)
predictions = model.predict(input_tensor)
但是,如果您尝试加载使用以下命令保存的相同模型tf.keras.models.save_model
, using tf.saved_model.load
你必须这样做:
model = tf.saved_model.load(<saved_model_folder>)
predictions = model(input_tensor) # Notice predict is not used.
写在注释部分https://www.tensorflow.org/api_docs/python/tf/keras/Model#call https://www.tensorflow.org/api_docs/python/tf/keras/Model#call.
如果你想要推理(预测)功能,你可以这样做:
model_loaded = tf.keras.models.load_model(<saved_model_folder>)
DEFAULT_FUNCTION_KEY = 'serving_default'
predict_func = model_loaded.signatures[DEFAULT_FUNCTION_KEY]
for batch in predict_dataset.take(1):
print(predict_func(batch))
我认为你正在使用keras
API 来保存和saved_model
用于加载模型的 API,因此出现了问题。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)