问题:
使用tensorflow 2 (eager)模式的时候,自定义的损失函数出现类型不匹配错误(tf 1正常):
TypeError: Expected float32 passed to parameter ‘y‘ of op ‘Equal‘, got ‘auto‘ of type ‘str‘ instead
分析:
数据类型不匹配。
解决:
需要使用tf.cast进行类型转换,例如:
def diy_loss(y_true, y_pred):
y_true = tf.cast(y_true, dtype=tf.float32)
y_pred = tf.cast(y_pred, dtype=tf.float32)
loss = y_true - y_pred
return loss