SIMPLERNN KERAS中的矩阵计算

时间:2019-04-29 18:30:17

标签: keras deep-learning lstm recurrent-neural-network

我试图了解SIMPLERNN中涉及的矩阵计算。

我从一些博客文章和stackoverflow中了解到,SimpleRNN(units)创建了一个层,其中每一层中均包含无数量的RNN单元。 SimpleRNN涉及以下计算

W =内核#shape-(1,units)

U = recurrent_kernel#shape-(单位,单位)

B =偏向#shape-(单位,)

output = new_state = act(W *输入+ U *状态+ B)

帮助我了解以下以下代码段的输入和输出尺寸。

用于生成X和Y的函数。其中Y是X的累加和。

'def generate_batch(n = 256):

X = np.random.choice(a=[0, 1], size = n*seq_len, p=[0.9, 0.1]).reshape(n, -1)

y = np.cumsum(X, axis=1)

X = X.reshape(n, -1, 1)

y = y.reshape(n, -1, 1)

return(X, y) #returns shape X,y-(256,60,1)

model = Sequential()

model.add(SimpleRNN(10,input_shape =(60,1),return_sequences = True))

model.add(Dense(1))

model.compile(loss ='mse',optimizer ='adam')

X,y = generate_batch()#(256,60,1)

model.fit(X,y,verbose = 0,epochs = 1)'

请帮我弄清楚RNN的输入维,状态和RNN的输出维,矩阵计算是如何发生的,即(W *输入+ U *状态+ B)。

0 个答案:

没有答案