几个月前,我已经使用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)
])
谢谢您的帮助!
对于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/