В пользовательском потере с тензорным потоком я пытаюсь выбрать только значение истинного тензора и прогнозирования, от 0,2 до 0,8, и положить равным 1, в противном случае равным 0. Затем я вычисляю mse между прогнозом и истиной.
def customLoss(yTrue, yPred):
yTrue_low=tf.where(yTrue > 0.2, tf.constant(1.), tf.constant(0.))
yTrue_high=tf.where(yTrue < 0.8, tf.constant(1.), tf.constant(0.))
trTrue=tf.multiply(yTrue_low, yTrue_high)
yPred_low=tf.where(yPred > 0.2, tf.constant(1.), tf.constant(0.))
yPred_high=tf.where(yPred < 0.8), tf.constant(1.), tf.constant(0.))
trPred=tf.multiply(yPred_low, yPred_high)
return tf.math.reduce_mean(tf.math.square(trTrue-trPred))
Я получил ошибку: ValueError: Градиенты не указаны ни для одной переменной