Мне приходится иметь дело с сильно несбалансированными данными. Насколько я понимаю, мне нужно использовать взвешенную кросс-энтропийную потерю.
Я пробовал это:
import tensorflow as tf
weights = np.array([<values>])
def loss(y_true, y_pred):
# weights.shape = (63,)
# y_true.shape = (64, 63)
# y_pred.shape = (64, 63)
return tf.reduce_mean(tf.nn.weighted_cross_entropy_with_logits(y_true, y_pred, weights))
model.compile('adam', loss=loss, metrics=['acc'])
Но есть ошибка:
ValueError: Creating variables on a non-first call to a function decorated with tf.function
Как я могу создать такую потерю?