Я определяю пользовательскую функцию в Keras для расчета метрики R-Squared. Я использовал следующий код с серверной частью keras:
import keras.backend as K
def Rsqured(y_true,y_pred):
y_true = K.batch_flatten(y_true)
y_pred = K.batch_flatten(y_pred)
y_tr_mean = K.mean(y_true)
y_pr_mean = K.mean(y_pred)
num = K.sum((y_true-y_tr_mean) * (y_pred-y_pr_mean))
num = num^2
denom = K.sum((y_true-y_tr_mean)*(y_true-y_tr_mean)) * K.sum((y_pred-
y_pr_mean)*(y_pred-y_pr_mean))
return num
/деном
Позже, когда я вызову это в свою модель:
model.compile(optimizer='adam',loss='mean_squared_error', metrics=[Rsqured])
Я получаю следующую ошибку:
Input 'x' of 'LogicalOr' Op has type int64 that does not match expected type of bool.
Вопрос здесь: num = num^2
. ^
— побитовый оператор XOR. Вы хотите **
.
Пожалуйста, исправьте отступ вашего кода.