5

我正在尝试在我的网络中使用 CTC 损失函数,但不太了解何时将“空白”标签作为标签提供。

我在Molchanov描述的手势识别中使用它,但是让我感到困惑的是还有一个“没有手势”。

在 tensorflow 文档中,描述为

输入 Tensor 的最内层维度大小 num_classes 表示 num_labels + 1 个类,其中 num_labels 是真实标签的数量,最大值(num_classes - 1)保留给空白标签。

如果我现在使用“空白”标签来表示没有手势,我的训练受到限制,因为错误

在空标签后面看到一个非空标签(索引 >= num_classes - 1)

我假设空标签与空白标签相同。

问题是,当我想提供以无手势开始(映射到空标签)然后有手势的数据时,我得到了这个错误。我可以通过在现有标签旁边添加两个标签来避免它,一个用于“无手势”,一个用于“空白标签/空标签”。然后我只输入“无手势”标签,但从不输入“空白”标签,但这似乎不太正确。

所以我的问题是,我应该使用“空白/空”标签做什么?

我可以想象在语言处理中,您通常会使用句尾点作为“空”标签吗?但是没有结束手势,因为它是一个连续的流。

谢谢

4

1 回答 1

2

编辑 我强烈推荐阅读这篇蒸馏文章。“ε(空白)标记不对应任何东西,只是从输出中删除。” 它用于“中断”重复标记的合并。

空白标签用作两个类之间的过渡状态。

阅读更多

要回答我的问题本身,您不会将空白标签分配给任何东西,但仍将其作为现有类。就我而言,我又添加了两个标签,一个用于无手势类,一个用于空白。

(至少我是这样做的,并得到了一些不错的结果)

于 2017-03-02T08:35:02.367 回答