keras代码报错: TypeError: Value passed to parameter 'input' has DataType bool not in list of allowed values: float32, float64, int32, uint8, int16, int8, complex64, int64, qint8, quint8, qint32, bfloat16, uint16, complex128, float16, uint32, uint64
报错代码:
from keras import backend as K
def errors(y_true, y_pred):
return K.sum(K.not_equal(y_true, K.round(y_pred)))
错误分析:
K.sum不能直接对bool类型数据进行求和操作(tensorflow中tf.reduce_sum()也是)
解决办法:
return tf.reduce_mean(K.cast(K.equal(y_true, K.round(y_pred)),dtype = 'int32'))
思悟:不能把目光注视在输入类型问题上,要定位到具体问题代码上