我想创建自定义损失函数,但总是出现相同的错误:“ ValueError:操作具有None
用于渐变。请确保所有操作都定义了渐变(即可区分)。没有渐变的常见操作:K.argmax,K.round,K.eval。“
我创建了一个简单的示例,其中我的损失函数是在y_true中计算的。
def build_shared_model(inputs_count, outputs_count):
x = y = Input(shape=(inputs_count,))
y = Dense(16)(x)
y = Activation('relu')(y)
y = Dense(16)(y)
y = Activation('relu')(y)
y = Dense(outputs_count)(y)
def custom_loss(y_true, y_pred):
return y_true
model = Model(x, y)
model.compile(Adam(lr=0.001), loss=custom_loss)
return model
if __name__ == '__main__':
network = build_shared_model(4, 1)
x = np.zeros((10, 4)) # dump input instead real inputs
y = np.zeros(10) # dump y_true instead some equation
network.fit(x, y, verbose=0)
我不知道要修理它。你能帮我吗?