如何解决在keras.Model调用函数中给出多个参数
class F(keras.Model):
def __init__(self,K):
super(F,self).__init__()
self.prev_state = [tf.zeros([128,64]),tf.zeros([128,64])]
self.K=K
self.rnn_cell = layers.LSTMCell(64)
def call(self,XHat,g_embedding):
prev_state = self.prev_state
for step in range(self.K):
output,state = self.rnn_cell(XHat,prev_state)
h_k = tf.add(output,XHat)
content_based_attention = tf.nn.softmax(
tf.multiply(prev_state[1],g_embedding))
r_k = tf.reduce_sum(tf.multiply(content_based_attention,g_embedding),axis=0)
prev_state = [state[0],tf.add(h_k,r_k)]
return output
f=F(10)
f.build(input_shape=(None,64))
我想构建一个模型,该模型需要将两个参数传递给'call'函数,输入序列'XHat'(64,)和'g_embedding',这是另一个模型的输出,但是在运行后出现以下错误。 / p>
ValueError:当前,如果模型的位置或关键字参数不是模型的输入,而是
call
方法所必需的,则无法构建模型。相反,为了实例化和构建模型,请在具有所有预期调用参数的实际张量数据上call
构建模型。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。