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

Ara*_*lla 4 tensorflow recurrent-neural-network

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

在github页面中,提到rnn和seq2seq被移动到tf.nn

j31*_*rre 7

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

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

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

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

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

车型/教程/ RNN /翻译/ translate.py

...提供main(),train(),decode()的作品外的即装即用翻译英语翻译成法语......但你能适应这个代码到其他数据集

车型/教程/ RNN /翻译/ seq2seq_model.py

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

tensorflow/tensorflow /的contrib/legacy_seq2seq /蟒蛇/ 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 /蟒蛇/ 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
Run Code Online (Sandbox Code Playgroud)