Ele深度学习十一
RNN(基于lstm)
循环神经网络(Recurrent Neural Network, RNN)是一类以序列(sequence)数据为输入,在序列的演进方向进行递归(recursion)且所有节点(循环单元)按链式连接的递归神经网络(recursive neural network)。
对循环神经网络的研究始于二十世纪80-90年代,并在二十一世纪初发展为深度学习(deep learning)算法之一 [2] ,其中双向循环神经网络(Bidirectional RNN, Bi-RNN)和长短期记忆网络(Long Short-Term Memory networks,LSTM)是常见的循环神经网络 。
循环神经网络具有记忆性、参数共享并且图灵完备(Turing completeness),因此在对序列的非线性特征进行学习时具有一定优势。循环神经网络在自然语言处理(Natural Language Processing, NLP),例如语音识别、语言建模、机器翻译等领域有应用,也被用于各类时间序列预报。引入了卷积神经网络(Convolutional Neural Network,CNN)构筑的循环神经网络可以处理包含序列输入的计算机视觉问题。
关键代码:
x_train_index = sequence.pad_sequences(x_train_index,maxlen=maxlen) #将词汇量统一到25 x_test_index = sequence.pad_sequences(x_train_index,maxlen=maxlen) for word,i in word_index.items(): #循环处理词矩阵 embedding_vector = word_vecs.get(word) if embedding_vector is not None: embedding_matrix[i] = embedding_vector model = Sequential() model.add(Embedding(trainable=False,input_dim=vocalen,output_dim=300,input_length=maxlen)) model.add(LSTM(128,return_sequences=True)) model.add(LSTM(128)) model.add(Dense(1,activation='sigmoid'))