TensorFlow中的序列标签

Mil*_*lan 7 sequence lstm tensorflow

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

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

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

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

小智 6

我建议你先阅读RNN教程序列到序列教程.他们解释了如何在TensorFlow中构建LSTM.一旦您对此感到满意,您将必须找到正确的嵌入变量并使用预先训练的word2vec模型进行分配.


Eng*_*ero 3

我意识到这是不久前发布的,但我发现这个关于序列标记的要点这个关于变量序列标记的要点对于弄清楚序列标记确实很有帮助。基本大纲(要点的要点):

  1. 用于dynamic_rnn处理展开网络以进行训练和预测。此方法已在 API 中移动了一些,因此您可能需要找到适合您的版本的方法,但只需 Google 即可。
  2. 将数据按大小批量排列[batch_size, sequence_length, num_features],将标签按大小批量排列[batch_size, sequence_length, num_classes]。请注意,您需要为序列中的每个时间步骤添加标签。
  3. 对于可变长度序列,将值传递给批次中每个序列sequence_length的包装器参数。dynamic_rnn
  4. 一旦定义了网络结构,训练 RNN 就与训练任何其他神经网络非常相似:向其提供训练数据和目标标签,然后观察它学习!

还有一些注意事项:

  1. 对于可变长度序列,您将需要构建掩码来计算错误指标等。这一切都在上面的第二个链接中,但不要忘记当您制定自己的错误指标时!我遇到过几次这种情况,这让我的网络看起来在可变长度序列上表现得更差。
  2. 您可能想在损失函数中添加正则化项。如果没有这个,我会遇到一些收敛问题。
  3. 我建议tf.train.AdamOptimizer首先使用默认设置。根据您的数据,这可能不会收敛,您将需要调整设置。本文很好地解释了不同旋钮的用途。从头开始阅读,Adam 部分之前解释了一些旋钮。

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