使用非张量的TensorFlow 2中的自定义损失函数

时间:2020-08-16 02:32:00

标签: python tensorflow tensorflow2.0 tf.keras loss-function

我意识到我要问的内容可能无法实现,但是我想尝试一下。 我正在构建一个NN分类器,并想使用一个自定义损失函数,该函数涉及使用多个库和numpy函数完成的复杂计算。一个非常简单(天真)的尝试是:

def custom_loss(y_true, y_pred):
    return compute_loss(y_pred, some_feature)

其中compute_loss是为我提供所需数量的函数(这还取决于训练过程中未提供给NN的其他功能)。 TensorFlow使用此方法抱怨张量不具有compute_loss中使用的某些属性。在返回值前加上tf.constant无济于事。最明显的方法(至少对我而言)是将compute_loss中的每个操作转换为tf函数,但这会花费一些时间,并且容易出错。所以我的问题是:

  • 是否有一种方法(除了将函数中的所有内容转换为tf函数之外),可以使用不对张量进行运算的自定义损失函数?

  • 如何根据模型或训练数据中不存在的数量创建损失函数?我已经看到了用于此功能的Lambda图层,但我不确定如何确定细节

感谢您的帮助,如果问题不清楚,我深表歉意

0 个答案:

没有答案