【发布时间】:2019-11-11 17:17:05
【问题描述】:
我希望创建一个自定义损失函数,它不直接使用 RNN(y_pred) 的中间输出,而是将 y_pred 作为输入提供给另一个 RNN(比如 RNN2,它已经被定义和训练) ,并将这些预测值作为损失函数的参数。
我尝试从 model.compile 函数调用我的自定义损失函数,这会产生错误。是因为我无法将张量数据类型的对象输入 RNN2 吗?假设 y_pred 具有训练的中间输出,我错了吗? 使用 sess 的 y_pred 的简单打印命令也会引发错误! 即
sess=tf.Session()
print(sess.eval(y_pred))
那么问题是 y_pred 的基础吗?
不管怎样,这是代码:
def custom_loss(y_true, y_pred):
predicted=rnn2.predict(y_pred)
return K.mean(K.abs( predicted-y_true), axis=-1)
input_tensor = Input(shape=(1,1))
hidden = LSTM(100, activation='softmax',return_sequences=False)(input_tensor)
out = Dense(1, activation='softmax')(hidden)
model = Model(input_tensor, out)
model.compile(loss=custom_loss, optimizer='adam')
错误
You must feed a value for placeholder tensor 'input_19' with dtype float and shape [?,1,1]
[[{{node input_19}}]]
【问题讨论】:
标签: tensorflow keras