自定义Keras / TensorFlow损失函数可惩罚输出变化

时间:2020-05-15 22:15:45

标签: python numpy tensorflow keras neural-network

我的目标是时间序列,我正在寻找一个代价函数,该函数会惩罚预测的变化,因此对于 N 的批量大小和具有 k 的模型输出,在损失函数 y_pred 中将为 N x k

所以我正在寻找一种在损失函数中引入惩罚的方法:

K.sum(K.abs(np.diff(y_pred)) * alpha)

其中 alpha 是自定义输入 1 x k 每个目标每次更改的费用。我正在寻找一种与np.diff进行这种Keras.backend的方式,这可能吗?也许有一种方法可以将这些张量转换为np.arrays,我所有的恶作剧都可以转化为张量吗?

1 个答案:

答案 0 :(得分:0)

您可以尝试以下方法:

y_pred[:,1:] - y_pred[:,:-1]

它与numpy的{​​{1}}等效,轴= 1,并且在损失函数中有效。