无法将权重传递给张量中的损失函数:Tensorflow对象没有len()

时间:2019-04-22 19:32:06

标签: python tensorflow

因此,我将损失函数定义如下: 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

我不确定该如何调试。有什么想法吗?

0 个答案:

没有答案
相关问题