我的Keras模型是Keras存储库中的babi_rnn示例。
我想在数据集中获取模型的输出(以字为单位)。
我试过了:
layer = model.layers[-1] # For the last layer
f = K.function([model.get_input(train=False)], [layer.get_output(train=False)])
print(f([x])[0]) # your activation tensor
但是我得到了错误:
AttributeError: 'Sequential' object has no attribute 'get_input'
在输入输入的情况下,如何简单地获取模型或图层的输出?
那就是我需要
# I supply the X list and want to get the Y list.
Y = Model(X) # X and Y are both lists. Model.Layer[Index] can also be a use case.
# The responses are the set of label probabilities for each word in the vocabulary.
这样我就可以做:for x, y in zip(X,Y): print(x,y)
看看模型实际在做什么。
我认为这应该是最简单的用例,但是实现起来似乎很麻烦。
任何帮助将不胜感激。谢谢。
您可以简单地使用model.predict
来获得内部调用Y
的predict
功能,该功能_make_predict_function()
可以完成您想做的事情。
但是您的模型受过训练,可以将特定类型的输入映射到特定类型的输出...因此,您在使用predict
函数时需要特别注意并解释它们。在此示例中,此转换已完成,vectorize_stories()
因此请尝试了解它在做什么。
在这种情况下,要预测单词,您需要在训练模型后要做的所有事情是:
Y_pred = model.predict([tX, tXq])
for pred in Y_pred:
print (vocab[pred.argmax()-1])
再次注意tX
,矢量化测试故事tXq
是矢量化测试查询,并且Y_pred
是模型对您的矢量化预测的答案。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句