一个网站上线需要什么,网站开发与规划就业前景,wordpress wp footer,深圳买房最新政策一。循环神经网络RNN 用于处理序列数据的神经网络就叫循环神经网络。序列数据说直白点就是随时间变化的数据#xff0c;循环神经网络它能够根据这种数据推出下文结果。RNN是通过嵌含前一时刻的状态信息实行训练的。 RNN神经网络有3个变种#xff0c;分别为Simple RNN、LSTM、…一。循环神经网络RNN 用于处理序列数据的神经网络就叫循环神经网络。序列数据说直白点就是随时间变化的数据循环神经网络它能够根据这种数据推出下文结果。RNN是通过嵌含前一时刻的状态信息实行训练的。 RNN神经网络有3个变种分别为Simple RNN、LSTM、GRU。 1Simple RNN短期记忆 Simple RNN是将上一次输出状态与这一次的输入拼接起来进行下一次训练一直这样下去。Simple RNN只适合短期记忆也就是Simple RNN输入的序列不能太长这是由于随着网络层数增加梯度消失导致的说直白点就是Simple RNN会丢失前一部分的信息。 Simple RNN实现IMDB电影评论分类
实现
1.加载数据、数据预处理
2.补白
3.搭建RNN模型
4.训练、评估1.加载数据、数据预处理
①加载数据得到训练集、测试集vocabulary 10000#设置评论常用词汇10000个单词
start_char 1#一句话的开始
oov_char 2#不在10000个词中的单词用OOV表示
index_from 3#从3开始算一句话开始
(x_train, y_train), (x_test, y_test) imdb.load_data(num_wordsvocabulary,start_charstart_char, oov_charoov_char, index_fromindex_from)#得到训练集与测试集②数据预处理第1步x_train是值找不到键必须将x_train变为键第2步由键找到单词word_index imdb.get_word_index()#加载大词典
inverted_word_index dict([(i index_from, word) for (word, i) in word_index.items()])# 将大词典键与值互换位置
#正式转换数据
inverted_word_index[start_char] [START]
inverted_word_index[oov_char] [OOV]
# .join(inverted_word_index[i] for i in x_train[0])#打印第一句话2.补白避免句子长短不一word_num 250
x_train pad_sequences(x_train, maxlenword_num)
x_test pad_sequences(x_test, maxlenword_num)
x_train.shape3.搭建RNN模型embed_dim 32
state_dim 32
rnn Sequential([Embedding(input_dimvocabulary,output_dimembed_dim,input_lengthword_num),#Embedding的作用是降维每次输入input_length250词每次将每个词拉成output_dim32最终高250变成了32达到了降维。一共有10000词等输入SimpleRNN(state_dim, return_sequencesFalse),#输出的状态向量为state_dimreturn_sequencesFalse表示只需要最后一个状态向量Dense(1,activationsigmoid)#Dense表示全连接层1表示结果输出一个数就可以activationsigmoid表示激活函数为sigmoid
])4.训练、评估①训练
rnn.compile(lossbinary_crossentropy,optimizerrmsprop,metrics[accuracy])#loss损失函数用交叉熵表示optimizer优化器metrics准确率
rnn.fit(x_train, y_train,batch_size128,epochs5,validation_data(x_test, y_test))#训练validation_data为测试集②评估score, acc rnn.evaluate(x_test, y_test, batch_size128)
2 LSTM长短期记忆 Simple RNN的缺点是随着序列的增长会丢失一部分前面的信息而LSTM为了弥补这一缺陷加入了传输带①能够在一定程度上缓解前面序列信息的遗忘LSTM大致可以分为5个部分介绍如下 ①传输带记为向量C过去的信息就是通过这个传输带送到下一时刻它不会损失太多信息就是通过这条传送带来避免梯度消失的问题 ②遗忘门门是用来控制是否让信息通过的遗忘门顾名思义就是让一部分信息通过一部分信息不通过。 ③输入门④新值同理操作处理完更新传输带 还是以电影分类为例只需将
SimpleRNN(state_dim, return_sequencesFalse) 改为
LSTM(state_dim, return_sequencesFalse) 即可。
3GRU 图解如下