首页 文章

TensorFlow中的序列标签

提问于
浏览
7

我已经设法训练了一个带有张量流的word2vec,我想将这些结果反馈到一个带有lstm细胞的rnn中进行序列标记 .

1)如何将训练有素的word2vec模型用于rnn并不是很清楚 . (如何提供结果?)

2)我没有找到关于如何实现序列标记lstm的文档 . (我如何带上我的标签?)

有人能指出我如何开始这项任务的正确方向吗?

2 回答

  • 3

    我意识到这是在不久前发布的,但我发现this Gist about sequence labelingthis Gist about variable sequence labeling对于确定序列标记非常有帮助 . 基本轮廓(要点的要点):

    • 使用 dynamic_rnn 处理展开网络以进行培训和预测 . 这种方法已经在API中移动了一些,因此您可能必须为您的版本找到它,而只是谷歌它 .

    • 将您的数据分成大小为 [batch_size, sequence_length, num_features] 的批次,并将您的标签分成大小为 [batch_size, sequence_length, num_classes] 的批次 . 请注意,您需要序列中每个时间步的标签 .

    • 对于可变长度序列,将值传递给批处理中每个序列的 dynamic_rnn 包装器的 sequence_length 参数 .

    • 训练RNN与定义网络结构后训练任何其他神经网络非常相似:提供训练数据和目标标签并观察它学习!

    还有一些警告:

    • 使用可变长度序列,您需要构建掩码来计算错误指标和内容 . 当你制作自己的错误指标时,它会忘记!我跑了几次,这使我的网络看起来像他们在可变长度序列上做得更糟 .

    • 您可能希望在损失函数中添加正则化项 . 没有这个我有一些收敛问题 .

    • 我建议首先使用 tf.train.AdamOptimizer 使用默认设置 . 根据您的数据,这可能不会收敛,您需要调整设置 . This article很好地解释了不同旋钮的作用 . 从一开始就开始阅读,在亚当部分之前解释了一些旋钮 .

    希望这些链接将来对其他人有所帮助!

  • 6

    我建议你先阅读RNN tutorialsequence-to-sequence tutorial . 他们解释了如何在TensorFlow中构建LSTM . 一旦你必须找到正确的嵌入变量并使用你预先训练的word2vec模型进行分配 .

相关问题