tensorflow:记录自定义损失函数?
tensorflow: logging custom loss function?
我写了一个自定义损失函数如下:
def distance_loss(y_actual, y_pred):
return tf.math.sqrt(
tf.math.add(
tf.math.pow(
tf.math.subtract(y_actual[0], y_pred[0]),
tf.constant(2.0)
),
tf.math.pow(
tf.math.subtract(y_actual[1], y_pred[1]),
tf.constant(2.0)
)
)
)
然而,这是我第一次这样做,所以我不知道这个功能的效果如何(或是否)。
有什么方法可以记录此函数的输入和输出,以及调用它的示例,以便我可以手动验证它是否按预期工作?
使用tf.print
:
def distance_loss(y_actual, y_pred):
x = tf.math.pow(
tf.math.subtract(y_actual[0], y_pred[0]),
tf.constant(2.0)
)
y = tf.math.pow(
tf.math.subtract(y_actual[1], y_pred[1]),
tf.constant(2.0)
)
loss = tf.math.sqrt(tf.math.add(x, y))
tf.print('First operation ->', x)
tf.print('Second operation ->', y)
tf.print('Loss ->', loss)
return loss
您将在调用 model.fit(*)
时看到这些值。
我写了一个自定义损失函数如下:
def distance_loss(y_actual, y_pred):
return tf.math.sqrt(
tf.math.add(
tf.math.pow(
tf.math.subtract(y_actual[0], y_pred[0]),
tf.constant(2.0)
),
tf.math.pow(
tf.math.subtract(y_actual[1], y_pred[1]),
tf.constant(2.0)
)
)
)
然而,这是我第一次这样做,所以我不知道这个功能的效果如何(或是否)。
有什么方法可以记录此函数的输入和输出,以及调用它的示例,以便我可以手动验证它是否按预期工作?
使用tf.print
:
def distance_loss(y_actual, y_pred):
x = tf.math.pow(
tf.math.subtract(y_actual[0], y_pred[0]),
tf.constant(2.0)
)
y = tf.math.pow(
tf.math.subtract(y_actual[1], y_pred[1]),
tf.constant(2.0)
)
loss = tf.math.sqrt(tf.math.add(x, y))
tf.print('First operation ->', x)
tf.print('Second operation ->', y)
tf.print('Loss ->', loss)
return loss
您将在调用 model.fit(*)
时看到这些值。