Keras 自定义丢失函数问题:在图形执行中不允许将`tf.Tensor`用作Python`bool`

Keras 自定义丢失函数问题:在图形执行中不允许将`tf.Tensor`用作Python`bool`,keras,tensorflow2.0,loss-function,Keras,Tensorflow2.0,Loss Function,我试图通过以下公式实现自定义损失: 这是为我的模型使用真正的自定义损失函数的第一步。数据集为Keras Cifar10。实现似乎是正确的,但我发现以下错误: operator不允许在图形执行中使用tf.Tensor作为Pythonbool。使用渴望执行或用@tf.function修饰此函数。 def custom_loss(y_true, y_pred): # −(the formula u used is the ROOT MSE (RMSE) def RMSE(y_true, y_

我试图通过以下公式实现自定义损失:

这是为我的模型使用真正的自定义损失函数的第一步。数据集为Keras Cifar10。实现似乎是正确的,但我发现以下错误:

operator不允许在图形执行中使用
tf.Tensor
作为Python
bool
。使用渴望执行或用@tf.function修饰此函数。

def custom_loss(y_true, y_pred):

  #  −(the formula u used is the ROOT MSE (RMSE)

def RMSE(y_true, y_pred):
    
    return tf.sqrt(tf.reduce_mean(tf.square(y_true-y_pred)))
def自定义丢失(y_真,y_pred):

# −(使用的公式u是根MSE(RMSE)

这里有一个工作示例


使用的公式u是根MSE(RMSE)

这里有一个工作示例


你在寻找经典的MSE吗?@MarcoCerliani为我的错误感到抱歉。我所有的问题都是实现自定义的丢失,即使是简单的预定义丢失。公式就是这样一个丢失的例子。你在寻找经典的MSE吗?@MarcoCerliani为我的错误感到抱歉。我所有的问题都是实现自定义的丢失,即使是简单的预定义丢失。The公式就是这种损失的一个例子。
def RMSE(y_true, y_pred):
    
    return tf.sqrt(tf.reduce_mean(tf.square(y_true-y_pred)))

X = np.random.uniform(0,1, (1000,10))
y = np.random.uniform(0,1, 1000)

inp = Input((10,))
x1 = Dense(32, activation='relu')(inp)
x2 = Dense(16, activation='relu')(x1)
out = Dense(1)(x2)

m = Model(inp, out)
m.compile('adam', RMSE)
m.fit(X,y, epochs=5)