sequence_Loss
模块的source_code具有三个必需的参数,它们将它们列为输出、目标和权重。
输出和目标是不言自明的,但我希望更好地理解 weight
是什么范围?
我感到困惑的另一件事是它指出 targets
应该是一样的length
作为输出,张量的长度究竟是什么意思?特别是如果它是一个 3 维张量。
最佳答案
将权重视为应用于输入张量的掩码。在一些 NLP 应用中,我们经常为每个句子设置不同的句子长度。为了将多个实例句子并行/批处理成一个小批量以输入神经网络,人们使用掩码矩阵来表示输入张量中的哪个元素实际上是有效输入。例如,权重可以是 np.ones([batch, max_length])
这意味着所有输入元素都是合法的。
我们还可以使用与标签相同形状的矩阵,例如 np.asarray([[1,1,1,0],[1,1,0,0],[1,1,1,1]])
(我们假设标签的形状是 3x4),那么第一行最后一列的 crossEntropy 将被屏蔽为 0。
您还可以使用权重来计算交叉熵的加权累积。
关于tensorflow - 理解 tensorflow sequence_loss 参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41134593/