首页 > 学院 > 开发设计 > 正文

TensorFlow——RNN模型

2019-11-06 09:16:44
字体:
来源:转载
供稿:网友

本文介绍TensorFlow官方提供的关于循环神经网络的一个模板。该模型是Zaremba论文中的方法应用在语言模型的实现。首先介绍一下TensorFlow有关RNN的代码布局,其实能用到的RNN文件就两个rnn_cell.py和rnn.py,这两个文件需要导入from tensorflow.nn.rnn importrnn_cell,rnn,其实还有另一个地方保存着这两个文件——tensorflow.models.rnn,但是由于tensorflow的更新,官方提示为了满足后向兼容性,要从前面给的导入路径导入这些模块。有了这两个文件,首先创建rnn cell,包含

cell = rnn_cell.BasicRNNCell(inputs, state)#__init__(self, num_units, input_size=None, activation=tanh)cell = rnn_cell.BasicLSTMCell(num_units) #最最基础的,不带peephole。__init__(self, num_units, forget_bias=1.0, input_size=None, state_is_tuple=False, activation=tanh)cell = rnn_cell.LSTMCell(num_units, input_size) #可以设置peephole等属性。__init__(self, num_units, input_size=None, #use_peepholes=False, cell_clip=None, #initializer=None, num_PRoj=None, proj_clip=None, #num_unit_shards=1, num_proj_shards=1, #forget_bias=1.0, state_is_tuple=False, #activation=tanh):cell = rnn_cell.GRUCell(num_units)#__init__(self, num_units, input_size=None, activation=tanh)

lstm_cell = tf.nn.rnn_cell.BasicLSTMCell(size, forget_bias=0.0) if is_training and config.keep_prob < 1: # 在训练以及为输出的保留几率小于1时 # 这里这个dropoutwrapper其实是为每一个lstm cell的输入以及输出加入了dropout机制 lstm_cell = tf.nn.rnn_cell.DropoutWrapper( lstm_cell, output_keep_prob=config.keep_prob) # 这里的cell其实就是一个多层的结构了。它把每一曾的lstm cell连在了一起得到多层 # 的RNN cell = tf.nn.rnn_cell.MultiRNNCell([lstm_cell] * config.num_layers) # 根据论文地4页章节4.1,隐匿层的初始值是设为0 self._initial_state = cell.zero_state(batch_size, tf.float32)


上一篇:MyEclipse:详细使用教程

下一篇:F4map

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表