#用numpy来实现简单的RNN
import numpy
import numpy as np
timesteps=100
input_features=32
output_features=64
inputs=np.random.random((timesteps,input_features))
state_t=np.zeros((output_features,))#初始化t=0时刻的状态
#创建随机的权重矩阵
W=np.random.random((output_features,input_features))
U=np.random.random((output_features,output_features))
b=np.random.random((output_features,))
successive_outputs=[]
for input_t in inputs:
#由输入和当前的状态决定输出
output_t=np.tanh(np.dot(W,input_t)+np.dot(U,state_t)+b)
#将输出保存到一个列表中
successive_outputs.append(output_t)
#把上一时刻的输出当作下一时刻的状态
state_t=output_t
final_output_sequence=np.stack(successive_outputs,axis=0)
代码部分如上,主要基于numpy库。(代码源自DL with python一书(作者为弗朗西所·肖莱)
特别提醒:在python3 的IDEpycharm中调用imdb包需要用以下代
from keras._tf_keras.keras.datasets import imdb
码,直接使用以下代码可能导致报错:
from keras.datasets import imdb