Neural network Keras获得RNN的重量解释

Neural network Keras获得RNN的重量解释,neural-network,keras,recurrent-neural-network,rnn,Neural Network,Keras,Recurrent Neural Network,Rnn,当我使用Keras运行此代码时: networkDrive = Input(batch_shape=(1,length,1)) network = SimpleRNN(3, activation='tanh', stateful=False, return_sequences=True)(networkDrive) generatorNetwork = Model(networkDrive, network) predictions = generatorNetwork.predict(no

当我使用Keras运行此代码时:

networkDrive = Input(batch_shape=(1,length,1))
network = SimpleRNN(3, activation='tanh', stateful=False, return_sequences=True)(networkDrive)

generatorNetwork = Model(networkDrive, network)

predictions = generatorNetwork.predict(noInput, batch_size=length)


print(np.array(generatorNetwork.layers[1].get_weights()))
我得到这个输出

[array([[ 0.91814435,  0.2490257 ,  1.09242284]], dtype=float32)
 array([[-0.42028981,  0.68996912, -0.58932084],
       [-0.88647962, -0.17359462,  0.42897415],
       [ 0.19367599,  0.70271438,  0.68460363]], dtype=float32)
 array([ 0.,  0.,  0.], dtype=float32)]
我假设,(3,3)矩阵是权重矩阵,将RNN单元彼此连接起来,两个数组中的一个可能是偏差
但第三个是什么

在SimpleRN实现中,确实需要3组权重

权重[0]
是输入矩阵。它转换输入,因此具有形状
[输入尺寸,输出尺寸]

权重[1]
是递归矩阵。它转换循环状态并具有形状
[输出尺寸,输出尺寸]

权重[2]
是偏差矩阵。它被添加到输出中,并具有一个形状
[output\u dim]

将三个操作的结果相加,然后通过激活层


我希望现在情况更清楚了

好的,有道理。为什么普通致密层没有输入矩阵,只有连通矩阵和偏差矩阵?致密层只是“输入层”。它们具有形状(输入尺寸、输出尺寸)