在哪里可以找到指定 RNN 和 Seq2Seq 模型中可用函数的 API 参考。
在 github 页面中提到 rnn 和 seq2seq 已移至 tf.nn
在哪里可以找到指定 RNN 和 Seq2Seq 模型中可用函数的 API 参考。
在 github 页面中提到 rnn 和 seq2seq 已移至 tf.nn
[注意:此答案已针对 r1.0 更新......但解释legacy_seq2seq
而不是tensorflow/tensorflow/contrib/seq2seq/
]
好消息是 tensorflow 中提供的 seq2seq 模型非常复杂,包括嵌入、桶、注意力机制、一对多多任务模型等。
坏消息是 Python 代码中有很多复杂性和抽象层,据我所知,代码本身是高级 RNN 和 seq2seq “API”的最佳可用“文档”......谢天谢地,代码是很好的 docstring'd。
实际上,我认为下面指出的示例和辅助函数主要用于参考以了解编码模式......并且在大多数情况下,您需要使用较低级别Python中的基本函数重新实现您需要的内容API
以下是 r1.0 版自上而下的 RNN seq2seq 代码细分:
模型/教程/rnn/translate/translate.py
...提供main()
, train()
,decode()
可以开箱即用地将英语翻译成法语...但是您可以将此代码调整为其他数据集
...class Seq2SeqModel()
设置一个复杂的 RNN 编码器-解码器,带有嵌入、桶、注意力机制......如果你不需要嵌入、桶或注意力,你需要实现一个类似的类。
张量流/张量流/contrib/legacy_seq2seq/python/ops/seq2seq.py
...通过辅助函数实现 seq2seq 模型的主要入口点。请参阅model_with_buckets()
, embedding_attention_seq2seq()
, embedding_attention_decoder()
, attention_decoder()
,sequence_loss()
等。示例包括one2many_rnn_seq2seq
没有嵌入/注意的模型,也提供了类似basic_rnn_seq2seq
. 如果您可以将数据塞入这些函数将接受的张量中,这可能是您构建自己的模型的最佳切入点。
张量流/张量流/contrib/rnn/python/ops/core_rnn.py
...为 RNN 网络提供了一个包装器,比如static_rnn()
我通常不需要的一些花里胡哨的东西,所以我只使用这样的代码:
def simple_rnn(cell, inputs, dtype, score):
with variable_scope.variable_scope(scope or "simple_RNN") as varscope1:
if varscope1.caching_device is None:
varscope1.set_caching_device(lambda op: op.device)
batch_size = array_ops.shape(inputs[0])[0]
outputs = []
state = cell.zero_state(batch_size, dtype)
for time, input_t in enumerate(inputs):
if time > 0:
variable_scope.get_variable_scope().reuse_variables()
(output, state) = cell(input_t, state)
outputs.append(output)
return outputs, state
到目前为止,我在他们的网站上也找不到关于 rnn 函数的 API 参考资料。
不过相信大家可以在github上看到每个函数的注释,作为函数参考。
https://github.com/tensorflow/tensorflow/blob/master/tensorflow/python/ops/rnn.py
https://github.com/tensorflow/tensorflow/blob/master/tensorflow/python/ops/rnn_cell.py
TensorFlow 的当前/主版本的 RNN 文档: https ://www.tensorflow.org/versions/master/api_docs/python/nn.html#recurrent-neural-networks
特定版本 TensorFlow 的 RNN 文档: https ://www.tensorflow.org/versions/r0.10/api_docs/python/nn.html#recurrent-neural-networks
出于好奇,这里有一些关于为什么 RNN 文档最初不可用的说明: API 文档没有列出RNN