我想改变喀拉拉邦的二进制mbinary_crossentropy损失。
例如:
def my_binary_crossentropy(self, y_true, y_pred):
t_loss = K.max(y_pred, 0) - y_pred * y_true + K.log(1 + K.exp((-1) * K.abs(y_pred)))
if t_loss > 0.9 :
t_loss = 0
elif t_loss < 0.1:
t_loss = 0
return t_loss
但是我得到了错误:
Type Error : using a 'tf.Tensor as a python 'bool' is not allowed
所以我更改了代码:
def my_binary_crossentropy(self,y_true, y_pred):
t_loss = K.max(y_pred,0) - y_pred * y_true + K.log(1+K.exp((-1)*K.abs(y_pred)))
print("before " ,t_loss)
t_loss= K.switch(t_loss > 0.9, K.zeros_like(y_true), t_loss)
t_loss = K.switch(t_loss < 0.1, K.zeros_like(y_true),t_loss)
print("after",t_loss)
return t_loss
但是我的损失和准确性并没有降低
[enter code here][1]
我如何将损失计入喀拉拉邦?