微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

来自 h_n 层的 LSTM 分类器pytorch

如何解决来自 h_n 层的 LSTM 分类器pytorch

我正在使用一个带有 2 层的简单 LSTM 模型作为学校项目的一部分,为长篇维基百科文章样本(每篇文章中有 5000 多个标记)开发分类器。目标是将每篇文章分为 2 类。

由于每篇文章的长度,我将每篇文章拆分为 100 个词长的子序列(并填充最后一个子序列),并使用这些子序列训练模型,而评估基于困惑度得分(逆概率)的句子)来自测试集的相似子序列。

问题是:

  1. 经验是,每一个时期之后,困惑度都会迅速上升。我怀疑这是因为测试集中的独特句子/单词在训练期间从未出现过,因此“不太可能”出现。这是真的吗?我唯一的解决方案是将训练集和测试集的子序列混洗在一起,并制作新的训练集和测试集(从而将未知词引入训练循环)。

  2. 主要目标是分类。保存每次循环后的最后一个隐藏层(h_n)。最后一层应该包含有关文本的信息,因此可以用作分类器中的特征列表(我计划使用线性 SVM),但我为每个文章子序列获得了一个 h_n。是否可以将每个子序列的 h_n 值组合回各自的“原始”文章中?

  3. 不是将子序列作为模型中的单个样本,我是否应该在模型训练中引入一个额外的嵌套循环,并使用子序列迭代的每个输出作为下一个子序列的输入(如果它们来自同一篇文章)?

感谢您的帮助:)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。