gpt4 book ai didi

python - GRU 和 RNN 实现之间的不一致

转载 作者:行者123 更新时间:2023-12-01 07:58:28 33 4
gpt4 key购买 nike

我正在尝试使用 Tensorflow 实现一些自定义 GRU 单元。我需要堆叠这些单元格,并且我想继承 tensorflow.keras.layers.GRU 。但是,在查看源代码时,我注意到只能将 units 参数传递给 GRU__init__,而 RNN有一个参数,它是一个 RNNcell 列表,并利用它来堆叠那些调用 StackedRNNCells 的单元。同时,GRU仅创建一个GRUCell

对于我试图实现的论文,我实际上需要堆栈GRUCell。为什么RNNGRU的实现不同?

最佳答案

在搜索这些类的文档以添加链接时,我注意到一些可能会让您困惑的事情:(目前,就在官方 TF 2.0 发布之前)两个 GRUCell在 TensorFlow 中的实现!有一个 tf.nn.rnn_cell.GRUCell 和一个 tf.keras.layers.GRUCell 。看起来像 tf.nn.rnn_cell 中的那个已弃用,您应该使用 Keras。

据我所知,GRUCell有相同的 __call__()方法签名为 tf.keras.layers.LSTMCell tf.keras.layers.SimpleRNNCell ,并且它们都继承自 Layer RNN 文档给出了有关 __call__() 的一些要求您传递给其的对象的方法 cell论证必须这样做,但我的猜测是,所有这三个都应该满足这些要求。您应该能够使用相同的 RNN框架并向其传递 GRUCell 的列表对象而不是 LSTMCellSimpleRNNCell .

我现在无法测试这个,所以我不确定你是否传递了 GRUCell 的列表物体或只是 GRU 对象进入RNN ,但我认为其中之一应该有效。

关于python - GRU 和 RNN 实现之间的不一致,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55831278/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com