Я хочу определить свою собственную функцию потерь в кератах, а bce_loss
умножить на переменную W
.На самом деле, W
имеет ту же форму, что и тензор bce_loss
.
Если я печатаю тензор bce_loss
, возможно, это можно показать следующим образом:
Tensor("loss_8/activation_14_loss/logistic_loss:0", shape=(?, 3), dtype=float32)
Теперь яне знаю, как получить форму bce_loss
и сделать переменную W
такой же, как bce_loss
.
Мой код:
def myLoss(y_true, y_pred):
bce_loss = K.binary_crossentropy(y_true, y_pred)
# want to get a variable W with the same shape of bce_loss
# And W is initialized with normal distribution.
val = np.random.normal(0, 0.05, size= bce_loss.size())
W = keras.variable( val )
return K.mean(self.W*bce_loss, axis = -1)