-1

我有 60 个长度为 200 的信号序列样本,每个样本由 6 个标签组标记,每个标签都标记有 10 个值之一。当将 200 长度甚至更短的样本馈送到网络时,我想在每个标签上的每个标签组中获得预测。

我尝试基于https://github.com/eclipse/deeplearning4j-examples/blob/master/dl4j-examples/src/main/java/org/deeplearning4j/examples/recurrent/seqclassification/UCISequenceClassificationExample.java示例构建自己的网络,但是,它提供了标签填充。我没有为标签使用填充,我得到这样的异常:

Exception in thread "main" java.lang.IllegalStateException: Sequence lengths do not match for RnnOutputLayer input and labels:Arrays should be rank 3 with shape [minibatch, size, sequenceLength] - mismatch on dimension 2 (sequence length) - input=[1, 200, 12000] vs. label=[1, 1, 10]
4

1 回答 1

-1

事实上,对于与特征相同的特征,标签需要有一个 200 长的时间维度。所以在这里我必须做一些技术,比如在所有 6 个标签通道中填充零。另一方面,输入错误,我把所有的 60*200 放在那里,但是它应该是 [1, 200, 60] 那里,而 6 个标签是 [1, 200, 10] 每个。

问题是我应该将真实标签值 [0]、[199] 放置在 200 长度标签的哪个部分,或者可以将标签放置到与它们相关联的信号的典型部分?我应该检查这一点的培训仍在进行中。什么样的填充更好?零填充或标签值填充?仍然不清楚,也无法用谷歌搜索出解释什么是最好的论文。

于 2020-04-15T18:55:01.000 回答