在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 (将#修改为@)

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...