因此,我将损失函数定义如下: here可以找到测试此代码的示例。
def W_hinge(weight):
def hinge_L(y_true, y_pred)
return tf.multiply((weight/9+y_true)*9/2,tf.maximum(0., 1- y_true*y_pred))
return hinge_L
我正在这样编译我的网络:
model.compile(optimizer='adam', loss=W_hinge(weight), metrics=[auc])
model.fit(X_train, y_train, epochs=1000, batch_size=256, callbacks = [EarlyStopping(monitor='loss', patience = 10)])
但是,当我这样做时,会出现以下错误:
TypeError:类型“ Tensor”的对象没有len()
但是当我做这样的基本铰链时:
def hinge(y_true, y_pred):
return tf.maximum(0., 1- y_true*y_pred)
它似乎工作正常。
我的weight
变量只是一个缩放器:weight = 21
。
我不确定该如何调试。有什么想法吗?