喀拉拉邦RNN的计算

时间:2019-11-13 05:48:19

标签: python keras recurrent-neural-network

重量由keras计算,该值用于硬件。 尽管我们能够计算出重量,但是由于验证不正确,我们还是遇到了麻烦。 输入是输入[1,0,1]并学习的RNN,当输入[1,0]时,输出为1。

model = Sequential()
model.add(SimpleRNN(2, activation=actfunc, 
               batch_input_shape=(None, timesteps, 1)))
model.add(Dense(1))

weight
U
(1, 2)
4.165456593036651611e-01    5.782085061073303223e-01

W
(2, 2)
8.230857849121093750e-01    5.847921371459960938e-01
6.210833787918090820e-01    -8.168703913688659668e-01

b
(2,)
6.841279566287994385e-02
1.096717920154333115e-02

V
(2, 1)
1.339856624603271484e+00
-4.971474707126617432e-01

c
(1,)
5.702519416809082031e-02

根据RNN的公式计算

ot = tanh(Uxt + Wht-1 + b)
它的值是

Uxt=
0.416545659303665
0.57820850610733  ×  1    0
=
0.416546    0
0.578209    0

Wht是第一项,0向量。 然后加上偏差b

0.484959     0.0684128
0.5891762    0.0109672

传递激活函数tanh,

0.450206147    0.068306268
0.529302863    0.01096676

它变成了。然后穿过密集层,

1.33001979377 

但是,预测值显示

0.999997

我认为RNN的计算部分是错误的,但是我不知道如何检查keras内部进行了哪种计算。请告诉我为什么支票不匹配或如何核对里面的计算。

0 个答案:

没有答案