tensorflow中的lstm,rnn

注意到tensorflow中定义一个cell(BasicRNNCell/BasicLSTMCell/GRUCell/RNNCell/LSTMCell)结构的时候需要提供的一个参数就是hidden_units_size,即下面语句种的size

lstm_cell = tf.nn.rnn_cell.BasicLSTMCell(size, forget_bias=0.0, state_is_tuple=True)

问题1:state_is_tuple=True的作用

答:每个lstm cell在t时刻都会产生两个内部状态h和c,这两个状态在tensorflow种都有记录,若

state_is_tuple=True,那么h和c就是分开记录,放在一个tuple中,若

state_is_tuple=False,两个状态就按列连起来,成为[batch,2n](其中n是hidden units个数),官方讲这种形式马上要被舍弃了,个人理解是在lstm内部,h=c,把两个相同的东西重复下也没什么意义。

embedding input

我们预处理了数据之后得到的是一个二维array,每个位置的元素表示这个word在vocabulary中的index。
但是传入graph的数据不能讲word用index来表示,这样词和词之间的关系就没法刻画了。我们需要将word用dense vector表示,这也就是广为人知的word embedding。
paper中并没有使用预训练的word embedding,所有的embedding都是随机初始化,然后在训练过程中不断更新embedding矩阵的值。



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值