keras 中的加权 mse 自定义损失函数 - 自定义权重

合身

我正在处理序列数据(一个热编码序列),并且正在寻找一种方法来编写自定义损失函数,该函数使用基于 y_pred 和 y_true 的值字典中的权重,并在训练时依赖于这些值(所以在调用 fit 时我不能使用恒重)。

基本上,对于序列矩阵中的每个 argmax 索引位置,我可以检索一个字符。对于每两个字符,我可以检索一个权重。这些字典如下:

values = 
     {0: 'A',
      1: 'C',
      2: 'D',
      ...}
matrix = array
     ([[ 4, -1, -2, -2,  0, -1, -1,  0, -2, -1, -1, -1, -1, -2, -1,  1,
         0, -3, -2,  0, -2, -1,  0, -4],
       [-1,  5,  0, -2, -3,  1,  0, -2,  0, -3, -2,  2, -1, -3, -2, -1,
        -1, -3, -2, -3, -1,  0, -1, -4],
       [-2,  0,  6,  1, -3,  0,  0,  0,  1, -3, -3,  0, -2, -3, -2,  1,
         0, -4, -2, -3,  3,  0, -1, -4],
       ...]])

我想做这样的事情:

y_true (n,155,20) ---K.argmax(.., axis=2)---> a:(n,155)

y_pred (n,155,20) ---K.argmax(.., axis=2)---> b:(n,155)

for i in range(n):
   for j in range(155):
      weights[i,j] = matrix[values[a[i,j]], values[b[i,j]]]

想象一下,有一种方法可以通过其他一些字典获取上面的矩阵值。

然后我想像这样使用我的weights矩阵:

def custom_loss_mse(y_true,y_pred):
    w = getWeights(y_true,y_pred)
    return K.mean(K.dot(w, K.square(y_pred-y_true)), axis=-1)

到目前为止,我只发现这个问题有帮助,而且并不是很相似。

这很容易,但由于计算图模型,keras 使我更难做。应该有一些快速的方法来做到这一点,但我没有想法。

我将不胜感激,因为我对 numpy 和 keras 还很陌生。

安娜·克罗格

您可以使用tf.gather获取特定索引处的张量值。例如,您可以a使用以下代码构建

index = K.argmax(y_true, axis=2)
a = tf.diag_part(tf.gather(y_true, index, axis=2))  # shape (n, 155)

我认为不可能从 dict 中获取值,因为所有计算都必须是符号化的。但是如果你可以使用矩阵而不是字典,你可以将矩阵转换为张量,K.constant然后你可以使用与上面相同的方法来获取特定索引处的值,具体取决于输入张量。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Keras,Python中的自定义损失函数?

来自分类Dev

Keras模型-在自定义损失函数中获取输入

来自分类Dev

在CNN的Keras自定义损失函数中处理数据

来自分类Dev

基于输入数据的Keras中的自定义损失函数

来自分类Dev

Keras 中自定义损失的输出

来自分类Dev

如何编写具有加权平均的keras自定义f1损失函数?

来自分类Dev

PyTorch中具有自定义后向功能的损失-简单的MSE示例中的爆炸损失

来自分类Dev

自定义keras损失

来自分类Dev

Keras的自定义损失函数中y_true的大小

来自分类Dev

在keras自定义损失函数中获取训练数据形状

来自分类Dev

Keras自定义损失函数:tf.function-decorated中的ValueError

来自分类Dev

Keras中的自定义损失函数,使用掩码数组作为输入

来自分类Dev

在 keras 的自定义损失函数中做一些数学运算

来自分类Dev

如何计算自定义 keras 损失函数中属于一个标签类的元素?

来自分类Dev

Keras:无法在模型中使用自定义损失函数

来自分类Dev

自定义损失函数,Keras \\ ValueError:无渐变

来自分类Dev

Keras中的自定义损失函数应该返回该批次的单个损失值,还是返回该训练批次中每个样本的大量损失?

来自分类Dev

Keras上的自定义损失功能

来自分类Dev

在Keras建立自定义损失

来自分类Dev

带和不带自定义循环的Keras中的回归自定义损失返回值

来自分类Dev

Keras my_layer.output返回KerasTensor对象而不是Tensor对象(在自定义损失函数中)

来自分类Dev

我的自定义Keras图层中的add_update()不会更新权重

来自分类Dev

在 keras 中实现自定义目标函数

来自分类Dev

如何在Tensorflow中编写自定义损失函数?

来自分类Dev

在自定义损失函数中迭代张量

来自分类Dev

张量流中的自定义损失函数

来自分类Dev

如何在Keras中实现此自定义损失功能?

来自分类Dev

如何在Keras模型的自定义损失中访问Tensor的内容

来自分类Dev

如何在Keras的自定义批处理培训中获得每个时期的损失?

Related 相关文章

  1. 1

    Keras,Python中的自定义损失函数?

  2. 2

    Keras模型-在自定义损失函数中获取输入

  3. 3

    在CNN的Keras自定义损失函数中处理数据

  4. 4

    基于输入数据的Keras中的自定义损失函数

  5. 5

    Keras 中自定义损失的输出

  6. 6

    如何编写具有加权平均的keras自定义f1损失函数?

  7. 7

    PyTorch中具有自定义后向功能的损失-简单的MSE示例中的爆炸损失

  8. 8

    自定义keras损失

  9. 9

    Keras的自定义损失函数中y_true的大小

  10. 10

    在keras自定义损失函数中获取训练数据形状

  11. 11

    Keras自定义损失函数:tf.function-decorated中的ValueError

  12. 12

    Keras中的自定义损失函数,使用掩码数组作为输入

  13. 13

    在 keras 的自定义损失函数中做一些数学运算

  14. 14

    如何计算自定义 keras 损失函数中属于一个标签类的元素?

  15. 15

    Keras:无法在模型中使用自定义损失函数

  16. 16

    自定义损失函数,Keras \\ ValueError:无渐变

  17. 17

    Keras中的自定义损失函数应该返回该批次的单个损失值,还是返回该训练批次中每个样本的大量损失?

  18. 18

    Keras上的自定义损失功能

  19. 19

    在Keras建立自定义损失

  20. 20

    带和不带自定义循环的Keras中的回归自定义损失返回值

  21. 21

    Keras my_layer.output返回KerasTensor对象而不是Tensor对象(在自定义损失函数中)

  22. 22

    我的自定义Keras图层中的add_update()不会更新权重

  23. 23

    在 keras 中实现自定义目标函数

  24. 24

    如何在Tensorflow中编写自定义损失函数?

  25. 25

    在自定义损失函数中迭代张量

  26. 26

    张量流中的自定义损失函数

  27. 27

    如何在Keras中实现此自定义损失功能?

  28. 28

    如何在Keras模型的自定义损失中访问Tensor的内容

  29. 29

    如何在Keras的自定义批处理培训中获得每个时期的损失?

热门标签

归档