ValueError:操作没有渐变。在实现不同层之间的自定义keras损耗时
我正试图在keras中实现一个自定义损失函数 我的目标函数是ValueError:操作没有渐变。在实现不同层之间的自定义keras损耗时,keras,tensorflow2.0,loss-function,consensus,Keras,Tensorflow2.0,Loss Function,Consensus,我正试图在keras中实现一个自定义损失函数 我的目标函数是 协商一致协议 交叉熵 其中fi是不同层的输出,ui是权重 #f123 = concatenate([f1, f2, f3]) #f = Dense(1, activation="sigmoid")(f123) def consensus(f1,f2,f3, f): def loss(y_true, y_pred): CP = K.square(f1-f2) + K.square(f2-f3) + K.square(f
#f123 = concatenate([f1, f2, f3])
#f = Dense(1, activation="sigmoid")(f123)
def consensus(f1,f2,f3, f):
def loss(y_true, y_pred):
CP = K.square(f1-f2) + K.square(f2-f3) + K.square(f3-f1)
CE = tf.keras.losses.BinaryCrossentropy()
L = CE(y_true, f)
return CP + L
return loss
其中f是
我得到以下错误日志
raise VALUE ERROR('一个操作对梯度有None
。'
ValueError:一个操作有
None
渐变。请确保您的所有操作都定义了渐变(即可微分)。没有渐变的常见操作:K.argmax、K.round、K.eval。您可以查看此链接吗-