一、RNN
LSTM适合时序序列、变长序列、尤其适合自然语言处理。从上图左边来看,RNN有两个输入,一个是当前
t
时刻的输入
输入:
形如(samples,timesteps,input_dim)的3D张量。
输出
如果return_sequences=True,返回形如(samples,timesteps,output_dim)的3D张量,否则返回形如(samples,timesteps,output_dim)的2D张量。
输入是一个三维向量。samples即为数据的条数。难以理解的是timesteps 和input_dim. Input_dim是数据的表示形式的维度,timestep则为总的时间步数。例如这样一个数据,总共100条句子,每个句子20个词,每个词都由一个80维的向量表示。在RNN中,每一个timestep的输入是一个词(当然这不一定,你也可以调成两个词或者其他),从第一张RNN的图来看,t0时刻是第一个时间步,x0则为代表一条句子中第一个词的80维向量,t1是第二个时间步,x1表示句子中第二个词的80维向量。。。所以,输入数据的大小应当是(100, 20, 80)