TensorFlow练习3: RNN, Recurrent Neural Networks

前文《使用Python实现神经网络》和《TensorFlow练习1: 对评论进行分类》都是简单的Feed-forward Neural Networks(FNN/前向反馈神经网络) 。而RNN(Recurrent Neural Networks)循环神经网络要相对复杂,它引入了循环,能够处理数据有前后关系的问题,常用在自然语言处理上。

RNN介绍:

RNN的目的使用来处理序列数据。在传统的神经网络模型中,是从输入层到隐含层再到输出层,层与层之间是全连接的,每层之间的节点是无连接的。但是这种普通的神经网络对于很多问题却无能无力。例如,你要预测句子的下一个单词是什么,一般需要用到前面的单词,因为一个句子中前后单词并不是独立的。RNNs之所以称为循环神经网路,即一个序列当前的输出与前面的输出也有关。具体的表现形式为网络会对前面的信息进行记忆并应用于当前输出的计算中,即隐藏层之间的节点不再无连接而是有连接的,并且隐藏层的输入不仅包括输入层的输出还包括上一时刻隐藏层的输出。

本帖在MNIST数据集上应用RNN,看看准确率和FNN相比有没有提高。

使用TensorFlow创建RNN

执行结果:

TensorFlow练习3: RNN, Recurrent Neural Networks

比FNN提高了3个百分点。

相关文章

《TensorFlow练习3: RNN, Recurrent Neural Networks》有3个想法

  1. data = tf.transpose(data, [1,0,2])
    data = tf.reshape(data, [-1, chunk_size])
    data = tf.split(0, chunk_n, data)
    这部分是不是有点bug,只需要下面即可?
    data = tf.transpose(data, [1,0,2])
    data = tf.split(0, chunk_n, data)

发表评论

电子邮件地址不会被公开。 必填项已用*标注