Keras-难以理解RNN单元

问题描述 投票:0回答:1

几个月前,我已经使用Tensorflow和tf.keras开始了深度学习。

我完全了解经典的密集层或卷积/池化层背后的概念,其中单位参数是神经元或过滤器的数量。

我最近搬到了RNN,但是这个单位参数让我感到困惑。

在本书示例的以下代码中,我使用了50个周期的时间序列,但我没有得到SimpleRNN层中的20个周期的真正代表。在人工神经网络中,第一个密集层具有与输入相同数量的参数,这让我感到困惑。

model = keras.models.Sequential([
    keras.layers.SimpleRNN(20, return_sequences=True, input_shape=[None, 1]),
    keras.layers.SimpleRNN(20, return_sequences=True),
    keras.layers.SimpleRNN(1)
])

还有具有密集层的那个:

model = keras.models.Sequential([
    keras.layers.SimpleRNN(20, return_sequences=True, input_shape=[None, 1]),
    keras.layers.SimpleRNN(20),
    keras.layers.Dense(1)
])

谢谢您的帮助!

tensorflow keras recurrent-neural-network theory
1个回答
0
投票

对于units中的keras.layers.SimpleRNN或keras提供的任何RNN结构,这意味着在RNN的一个单元中,包含用于计算输入的单位数量。如您所知,RNN中的单位为tanh,因此如果为units=1,则它将为左侧的图形,而对于units=3为右侧的图形

      output           output1  output2  output3
        ^                   ^      ^      ^
        |                   |      |      |
       tanh                tanh   tanh   tanh
        ^                   ^      ^      ^
        |                   |      |      |
input ---          input ------------------

仅将其视为CNN中的filters,也许您可​​以找到这个概念。推荐: https://colah.github.io/posts/2015-08-Understanding-LSTMs/

© www.soinside.com 2019 - 2024. All rights reserved.