几年前,当我从头开始编写一个实现(仅使用 Python + Numpy,不使用 tensorflow)时,我对经典 MLP 神经网络的理解要好得多。现在我想对循环神经网络做同样的事情。
对于具有密集层的标准 MLP NN,前向传播可以总结为:
def predict(x0):
x = x0
for i in range(numlayers-1):
y = dot(W[i], x) + B[i] # W[i] is a weight matrix, B[i] the biases
x = activation[i](y)
return x
对于给定的单层,这个想法只是:
output_vector = activation(W[i] * input_vector + B[i])
一个简单的 RNN 层的等价物是什么,例如。SimpleRNN
?
更准确地说,让我们以这样的 RNN 层为例:
输入形状:(None, 250, 32)
输出形状:(None, 100)
给定形状为 (250, 32) 的输入x
,我可以使用哪个伪代码生成y
形状(100,)的输出,当然是通过使用权重等?