在keras中提供自定义损失函数:
def my_custom_loss_func(self,y_true,y_pred): #一些代码
是否可以获取y_pred中的值以对损失函数进行一些计算?我尝试过,但是有人告诉我y_pred只是一个占位符,无法提取y_pred的实际值。您只能使用Keras后端函数来处理y_pred,但实际上无法访问其中的值,例如y_pred [1]或类似的东西。
我想做的事情是这样的:如果“ y_pred中的前10个值是负数而后10个值是负数”,那么“返回非常高的成本,因为我不希望这样优化网络”
是的,不用担心。这是一些示例代码。
def my_custom_loss_func(self, y_true, y_pred):
position_vector_initial = x[0, 0:3] #global variable
position_vector_now = y_pred[0, 0:3]
angle = angle_between(position_vector_initial, position_vector_now)
if (angle < 0):
return high_loss
else:
return kb.mean(kb.sum(kb.square(y_true - y_pred)))