假设我有一个输入和两个输出的模型。我希望我的模型的第三层的输出是我的第二个输出的成本函数中的y_true。 我试过这个:
model.fit(x, [y, model.layers[3].output], ...)
但得到了错误:
'Tensor' object has no attribute 'ndim'
我认为这是指我给出拟合方法的第二个y_true。
在Keras可以做这样的事吗?如果是这样,怎么样?
答案 0 :(得分:1)
我通过仅更改成本函数来实现这一目标,例如:
def custom_euclidean_distance_loss(layer_output):
from keras import backend as K
def wrap(y_true, y_pred):
return K.mean(K.square(y_pred - layer_output))
return wrap
由于我没有使用任何先前已知的y_true,我只是喂了一个假的适合。请注意,来自Keras的打印指标不一定正确,但模型将训练没有问题。
如果您确实知道一种更好的方法(比如实际提供适合的图层输出),请告诉我