tf.keras.layers.SimpleRNN 的参数个数

Number of parameters of tf.keras.layers.SimpleRNN

我正在从事一个旨在预测下一个角色的项目。预测字符 Y 映射到 One Hot 编码。

Data Shape
One (N,L,60)
Target Data (N,60)

这是我的代码:

HSIZE = 128
model = Sequential()
model.add(SimpleRNN(HSIZE, return_sequences=False, input_shape=(SEQLEN, nb_chars), unroll=True, use_bias=True)) 

这里是model.summary()打印的参数数量:

我选择 h = 128 的隐藏大小,我想知道如何计算参数的数量。我试着用手做,但找不到 model.summary().

打印的数字

我知道有三个矩阵U(输入),W(隐藏状态),V(对于输出),+ 偏差,我最终得到:

Dim(U) + Dim(W) + Dim(V) = (128,60) + (128,128) + (60,128) + (bias)60+128+128 = 32060.

有什么想法或者您是否发现我这边有任何潜在的误解?

SimpleRNN 层(同样适用于 LSTM 和 GRU 层,并且还使用 RNN 以及相应的 Cell 类)not 包括输出转换。您实际上可以通过摘要列出 128 个单位(状态大小)的输出形状这一事实来猜测它。它只计算状态序列。

参数的数量因此很简单128*128 + 60*128 + 128 = 24192(隐藏到隐藏矩阵,输入到隐藏矩阵,偏差)。