张量流中RNN和Seq2Seq模型的API参考

时间:2016-05-11 10:07:15

标签: tensorflow recurrent-neural-network

在哪里可以找到指定RNN和Seq2Seq模型中可用函数的API引用。

在github页面中,提到rnn和seq2seq已移​​至tf.nn

3 个答案:

答案 0 :(得分:7)

[注意:此答案针对r1.0进行了更新...但解释为legacy_seq2seq而不是tensorflow/tensorflow/contrib/seq2seq/]

好消息是张量流中提供的seq2seq模型非常复杂,包括嵌入,存储桶,注意机制,一对多多任务模型等。

坏消息是Python代码中存在很多复杂性和抽象层,并且代码本身是高级RNN和seq2seq“API”的最佳可用“文档”,据我所知...谢天谢地,代码很好。

实际上我认为下面提到的示例和辅助函数主要用于参考理解编码模式......在大多数情况下,您需要使用较低级别的基本函数重新实现所需的内容。 -level Python API

以下是版本r1.0自上而下的RNN seq2seq代码细分:

<强> models/tutorials/rnn/translate/translate.py

...提供main()train()decode(),开箱即用,将英语翻译成法语......但您可以将此代码改编为其他数据集

<强> models/tutorials/rnn/translate/seq2seq_model.py

... class Seq2SeqModel()设置了一个复杂的RNN编码器 - 解码器,带有嵌入,存储桶,注意机制......如果你不需要嵌入,存储桶或注意力,你需要实现类似的类

<强> tensorflow/tensorflow/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。如果您可以将数据插入到这些功能将接受的张量中,这可能是您构建自己的模型的最佳切入点。

<强> tensorflow/tensorflow/contrib/rnn/python/ops/core_rnn.py

...为像static_rnn()这样的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

答案 1 :(得分:1)

到目前为止,我还无法在其网站上找到有关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

答案 2 :(得分:0)

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 docs does not list RNNs