Tensorflow细节-P212-循环神经网络

本节的循环神经网络一图足以说明

import numpy as np


X = [1, 2]
state = [0.0, 0.0]


# 定义RNN的参数
# 以下两个本来是像这样分开的,但是在运算时合并了
w_cell_state = np.asarray([[0.1, 0.2], [0.3, 0.4]])
w_cell_input = np.asarray([0.5, 0.6])

b_cell = np.asarray([0.1, -0.1])
w_output = np.asarray([[1.0], [2.0]])
b_output = 0.1


# 执行前向传播过程
for i in range(len(X)):
    before_activation = np.dot(state, w_cell_state) + X[i] * w_cell_input + b_cell
    state = np.tanh(before_activation)
    final_output = np.dot(state, w_output) + b_output
    print("before activation: ", before_activation)
    print("state: ", state)
    print("output: ", final_output)

计算结果:

你可能感兴趣的