循环神经网络(RNN)是一种能够处理序列数据的神经网络,其特点是能够处理时间序列数据。 RNN的具体步骤如下:
- 计算隐藏状态更新
- 计算输出
- 计算损失
- 反向传播
本题只要求实现前向传播,反向传播不要求实现。
标准代码如下
def rnn_forward(input_sequence, initial_hidden_state, Wx, Wh, b):
h = np.array(initial_hidden_state)
Wx = np.array(Wx)
Wh = np.array(Wh)
b = np.array(b)
for x in input_sequence:
x = np.array(x)
h = np.tanh(np.dot(Wx, x) + np.dot(Wh, h) + b)
final_hidden_state = np.round(h, 4)
return final_hidden_state.tolist()