获取损失函数中的张量值

时间:2018-08-17 19:42:54

标签: tensorflow keras deep-learning theano pytorch

我想获取此keras backend function y_pred y_true 张量的值。我需要它能够执行一些自定义计算并更改损耗,这些计算只可能使用实际的数组值。

def mean_squared_error(y_true, y_pred):
    #some code here
    return K.mean(K.square(y_pred - y_true), axis=-1)

在喀拉拉邦有办法做到这一点吗?还是在其他任何ML框架(tf,pytorch,theano)中?

2 个答案:

答案 0 :(得分:0)

不,通常您无法以这种方式计算损失,因为Keras基于进行自动区分的框架(例如Theano,TensorFlow),并且它们需要知道您在两者之间进行哪些操作才能计算出损耗的梯度。

您需要使用keras.backend函数来实现损耗计算,否则将无法计算梯度并且无法进行优化。

答案 1 :(得分:0)

尝试将其包含在损失函数中: y_true = keras.backend.print_tensor(y_true,message ='y_true')

以下内容摘自Keras文档(https://keras.io/backend/):

print_tensor keras.backend.print_tensor(x,message ='') 在评估时打印消息和张量值。

请注意,print_tensor返回的新张量与x相同,应在以下代码中使用。否则,评估过程中将不考虑打印操作。